在Javascript中,Array.join真的是Array.prototype.join吗?

时间:2012-10-07 18:02:19

标签: javascript

我想知道为什么即使在Javascript权威指南第6版,O'Reilly,p. 149 - 150中,它仍继续使用Array.join()Array.concat()。它应该是Array.prototype.join()吗?

但是,虽然Chrome没有定义Array.join,但Firefox确实可以,Array.join(array, string)可以调用它。差异可能很重要,因为一个是类方法,另一个是实例方法。我不知道这是为什么?

即使在核心Javascript参考文档中,本书也继续使用Array.join,但也许这意味着Array.prototype.join,而且,它似乎表明Arraylength }属性,但它确实也应该是Array.prototype的属性,并且是Array.prototype.length

顺便说一句,似乎Firefox的Array.prototype.join实现可以

Array.prototype.join = function(s) {
    return Array.join(this, s);
}

但我没有看到通常会这样做(定义一个可以在实例上调用的类方法)。

1 个答案:

答案 0 :(得分:1)

FireFox在相关构造函数中放置原型方法的版本。

这不是ECMAScript标准的一部分,而是ECMAScript特定JavaScript超集的一部分。

除非本书专门讨论JavaScript扩展,否则本书应该有所区别。

请记住JavaScript!== ECMAScript。 ECMAScript是语言标准,JavaScript是该标准第3版的实现,包括标准未指定的超集功能。

相关问题