我正在制作一个js Canvas 插件,我制作了这个对象:
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();
}
})
问题是,我必须获取实例类并从中调用函数,但我从控制台得到“myFunction 不是函数”。
最佳答案
您不能从对象外部访问“this”。
按照您编写的方式,您需要实例化该对象,此时 myFunction 将成为该对象的方法。
“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});
关于javascript - 如何访问对象外部的 "this"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203481/