我正在制作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