【发布时间】:2010-04-28 13:38:46
【问题描述】:
我想了解用于返回函数的变量。 这是示例代码
Prototype = {}
Prototype.F =
{
bind: function()
{
var args = arguments, __method = args.shift(), object = args.shift();
return function()
{
return __method.apply(object, args.concat(arguments));
}
}
}
function ObjectA()
{
...
this.addListener = Prototype.F.bind(this.eventSource.addListener,
this.eventSource);
...
}
var a = ObjectA();
a.addListener(this); // assuming 'this' here will point to some window object
据我了解,bind() 中的返回函数在最后一行调用之前不会被评估。可以接受。所以 addListener 将包含一个包含“apply”的函数体。
但是我不明白的是,当addListener被调用时,它会有什么样的参数呢?特别是 _method 和 args 将始终未初始化?
【问题讨论】:
-
F是一个函数,它在对象上(写成对象字面量),有一个名为bind的属性,它是一个返回函数的函数。 -
对不起,错字,我会更新。我当然要绑定。
标签: javascript function arguments