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