各JS发动机对Function.prototype.apply第二个参数的实现差异

各JS引擎对Function.prototype.apply第二个参数的实现差异每个function都有个apply方法,该方法有两个作用:

各JS引擎对Function.prototype.apply第二个参数的实现差异

每个function都有个apply方法,该方法有两个作用:
1,改变function的执行上下文(第一个参数非null,undefined等)
2,执行/调用该function (见:http://snandy.iteye.com/blog/420000)

apply方法第二个参数一般认为被实现为数组,见经典的《javascript权威指南-第五版》中章节8.6.4,145页一句:

var obj = {0:'zero',1:'one',length:2,constructor:Array}function fun(){alert(arguments[0]);}fun.apply(null,obj);

?

即使obj看起来已经很象一个数组了,但除了Opera正常运行,仍然欺骗不了IE/Firefox/Chrome/Safari,看来只有Opera与众不同。

?

?

?

1 楼 ciznx 2012-03-08   好文章,分析得细致入理。