如何访问对象外部"this"变量



我正在制作JS帆布插件,我制作了此对象:

function MyObject(argument) {
   var self = this;
   var callback = argument.callback;
   this.onRequestAnimationFrame = function() {
       callback(self);
   }
   this.myFunction = function (){
       return false;
   }
}

我称之为这个

var customObject = new MyObject({
    callback: function(instanceClass){
       instanceClass.myFunction();
    }
})

问题是,我必须获得实例类并从中调用函数,但是我从控制台中获得"我的功能不是函数"。

您不从对象外部访问"此"。

您写这篇文章的方式,您需要实例对象,此时my功能将是对象的一种方法。

" this"不是一个变量,而是关键字。

function MyObject(argument) {
   var self = this;
   var callback = argument.callback;
   this.onRequestAnimationFrame = function() {
       callback(self);
   }
   this.myFunction = function (){
       return false;
   }
}
function callback (caller) {
    console.log(caller.myFunction());
};
var a = new MyObject({callback : callback});

当我们进行构造函数调用时,如果我们不返回任何对象,则函数会返回一个'此对象,该对象在其词汇范围中。

写这篇文章时,

var customObject = new MyObject({
    callback: function(instanceClass){
       instanceClass.myFunction();
    }
});

功能myObject返回其"这个"对象。

因此,我们可以调用'onrequestanimationframe'函数,该功能在回复中调用回调。

customObject.onRequestAnimationFrame();

jsbin链接:http://jsbin.com/foxupakihi/edit?js,console

最新更新