属于JavaScript对象原型的回调函数可以访问对象成员吗?

时间:2011-06-14 16:43:15

标签: javascript prototype-programming serverside-javascript

如何将属于JavaScript对象原型的回调函数访问对象成员? 回调不能是闭包,一切都必须定义如下:

function Obji(param){
   this.element = param;
}

Obji.prototype.func(){
   database.get("someKey",this.cb);
}

Obji.prototype.cb(){
   //here I would like to access this.element
}

2 个答案:

答案 0 :(得分:5)

database.get("someKey",this.cb.bind(this));

.bindES5 shim适用于较旧的浏览器

答案 1 :(得分:2)

在javascript this中始终指向调用该函数的对象,如果未在任何内容上调用该对象,则指向全局对象。你能这样做吗?

Obji.prototype.func = function(){
   var ref = this;
   database.get("someKey", function(){ref.cb()});
}