首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Object #<Socket> has no method 'foo' 这个异常时什么意思

2013-07-23 
Object #Socket has no method ɿoo' 这个错误时什么意思?本帖最后由 whbzealot 于 2013-07-1

Object #<Socket> has no method 'foo' 这个错误时什么意思?
本帖最后由 whbzealot 于 2013-07-17 11:23:37 编辑 调用方

var Net = require('net')
//var ProtoBuf = require("protobufjs");

var ServerSock = require('./SvrSocket');

var server = Net.createServer( onConnected );

server.listen(20660, function() {
console.log(' server  running...');

});

function onConnected( socket ){

console.log('connected..');

var serverSocket = ServerSock.createSvrSocket(null);

serverSocket.setSocket( socket );



然后SvrSocket是这个对象
module.exports = 
{
createSvrSocket : function( socket)
{
return new SvrSocket(socket);
},
}


function SvrSocket( socket )
{
this.m_Socket = socket;


}

SvrSocket.prototype.onData = function( buffer )
{
//this.foo();
}

SvrSocket.prototype.setSocket = function( socket ) {
this.m_Socket = socket;

this.m_Socket.on('data', this.onData );

this.foo();
}

SvrSocket.prototype.foo = function() {

}


这么做的话 就没有错误

但是如果我改成这样

module.exports = 
{
createSvrSocket : function( socket)
{
return new SvrSocket(socket);
},
}


function SvrSocket( socket )
{
this.m_Socket = socket;


}

SvrSocket.prototype.onData = function( buffer )
{
this.foo();
}

SvrSocket.prototype.setSocket = function( socket ) {
this.m_Socket = socket;

this.m_Socket.on('data', this.onData );

//this.foo();
}

SvrSocket.prototype.foo = function() {

}


当socket收到消息的时候就会提示这个错
        this.foo();
             ^
TypeError: Object #<Socket> has no method 'foo'


[解决办法]
你看一下两个地方的this是否一样

热点排行