var App = {
method : function (value, callback) {
console.log(value);
if (typeof callback === 'function') {
//here
callback.call( this );
}
}
}
App.method('Hey there', function(){
console.log('callback was executed!');
});
为什么我不能做回调(),但必须为回调调用(this)?
答案 0 :(得分:1)
简单地说,你没必要。除非您希望您的回调函数将其上下文设置为“App”对象。例如:
final=[]
for i in range(6):
final.append(list(map(int,input().split())))
我希望有所帮助!
答案 1 :(得分:0)
在您提供的回调函数的特定情况下,如果仅使用以下方法调用回调并不重要:
callback();
你的回调代码根本没有引用this
,所以它的价值没有区别。
但是,如果回调想要引用App
对象的其他部分,则使用callback.call(this)
进行调用可确保this
在回调中引用App
。例如:
var App = {
method : function (value, callback) {
console.log(value);
if (typeof callback === 'function') {
//here
callback.call( this );
}
},
property: "HELLO WORLD"
}
App.method('Hey there', function(){
console.log('callback was executed! Property value is: ' + this.property);
});
使用该代码,this
必须引用App
才能console.log()
调用访问对象属性。 .call()
的使用确保了。