![](/img/trans.png)
[英]How can I really understand the method of 'Array.prototype.join'
[英]In Javascript, is Array.join really Array.prototype.join?
我想知道为什么即使在Javascript权威指南第6版,O'Reilly, p。 149-150 ,它继续使用Array.join()
或Array.concat()
。 它应该是Array.prototype.join()
吗?
但是虽然Chrome没有定义Array.join
,但Firefox确实可以,并且可以通过Array.join(array, string)
调用它。 差异可能很重要,因为一个是类方法,另一个是实例方法。 我不知道这是为什么?
即使在Core Javascript Reference文档中,本书也继续使用Array.join
,但也许它意味着Array.prototype.join
,而且,它似乎暗示Array
有一个length
属性,但它确实也应该是Array.prototype
的属性Array.prototype
,是Array.prototype.length
?
顺便说一句,似乎Firefox的Array.prototype.join
的实现可以
Array.prototype.join = function(s) {
return Array.join(this, s);
}
但我没有看到通常这样做(定义一个可以在实例上调用的类方法)。
FireFox在相关构造函数上放置了原型方法的一个版本 。
这不是ECMAScript标准的一部分,而是ECMAScript的特定JavaScript超集的一部分。
除非本书专门讨论JavaScript扩展,否则本书应该有所区别。
请记住JavaScript!== ECMAScript。 ECMAScript是语言标准,JavaScript是该标准第3版的实现,包括标准未指定的功能超集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.