0
哪個組合更好綁定延遲
some_func.bind(this,arg1,arg2,arg3).delay(4);
或
some_func.bind(this).delay(4,arg1,arg2,arg3);
我知道,這兩種方式都會換東西了兩層,但假設的論據之一可以說arg1
是一個對象,是當前背景下的參考,例如var arg1 = this.some_obj
。現在因爲所有的業務都通過值傳遞,所以通過引用和功能範圍將第二種方式無法恢復arg1
,因爲當調用delay
時,它的上下文是全局對象。
這是OP的難題嗎? – 2010-11-08 11:49:34
這是真的。對於那些有時間並且很好奇的人來說,這是我感興趣的問題。 – clockworkgeek 2010-11-08 14:26:47
好吧,只是一個猜測(現在沒有時間來測試它):在延遲之後,'this'不再指'object',而是指其他的東西(可能是'window')。正確?順便說一句,我認爲你的函數調用是錯誤的:根據['Function#delay'](http://api.prototypejs.org/language/function/prototype/delay/),第一個參數('timeout')必須是指定。 – 2010-11-08 23:11:48