来自Call()的参数的JavaScript匿名函数

时间:2012-04-04 06:36:25

标签: javascript closures anonymous-function

我正在尝试执行以下操作:

function main(callback) {
   $.ajax('server-side', function() {
       this.callback.call("hello");
   }.bind({ callback: callback });
}

main(function(response) {
   alert(response);
});

回复是undefined,我希望它是"hello"。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

call第一个参数应该是对“this”的引用。将“this”作为您要执行函数的上下文。 Call function Mozila MDN

答案 1 :(得分:1)

您写道:

function main(callback) {
   $.ajax('server-side', function() {
       this.callback.call("hello");
   }.bind({ callback: callback });
}

main(function(response) {
   print response;
});

打印不存在于javascript中。

然后你写了this.callback.call,这是错误的

你应该写

callback.call(this,"hello") , 

只需检查通话功能签名。