从chrome套接字调用传递对此的引用

时间:2016-08-07 17:10:18

标签: javascript google-chrome google-chrome-app

在我的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套接字。

0 个答案:

没有答案