在我的Chrome应用中,我需要某种方式Chrome在执行回调时在此变量中提供对象'identity_service'的引用,但我不知道如何。
这是我的构造函数:
function Identity(identity_host,identity_port) {
this.identity_host=identity_host;
this.identity_port=identity_port;
this.socket_fd=0;
chrome.sockets.tcp.create({}, this.socket_create_callback);
}
函数socket_create_callback的定义如下:
Identity.prototype.socket_create_callback=function(info) {
console.log('info='+info);
console.log('constructor name:'+this.constructor.name);
console.log('hostname='+this.identity_host);
this.socket_fd=info.socketId;
}
这是我创建它的方式:
var identity_service=new Identity("localhost",4433);
如果没有面向对象的编程Chrome使用参数'info'调用回调函数,它可以正常工作。但是当使用OOP时,' this '变量不保留对我的'Identity'对象的引用,否则'hostname'将不会被定义。这是我在控制台日志中得到的:
identity.js:21 info=[object Object]
identity.js:22 constructor name:Object
identity.js:23 hostname=undefined
通过正确调用回调,csontructor的名称将为“Identity”。如何解决这个问题?
用于创建套接字的Chrome API调用是:
创建
chrome.sockets.tcp.create( SocketProperties properties, function callback)
创建TCP套接字。