我想了解一些已經用於返回函數的變量。 這是示例代碼JS函數返回另一個函數
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
據我瞭解在綁定返回()函數不計算直到它被稱爲在最後一行。可以接受。所以addListener將包含一個包含'apply'的函數體。
但是,我不明白,當addListener被調用時,它會有什麼樣的參數?特別是_method和args將始終未初始化?
'F'是一個函數,它在一個名爲'bind'的屬性(寫成對象字面值)上,它是一個返回函數的函數。 – RoToRa 2010-04-28 13:46:34
對不起,錯字,我會更新。當然,我會結合。 – Pablo 2010-04-28 13:51:21