我可能会因为过分模糊的问题而受到抨击,所以请将此解释为元编程问题,因为它应该是,而不是某种间接的火焰战争。
在尝试更深入地理解Javascript的数组时,我遇到了Array.valueOf
的{{1}}。
它只是说:
valueOf()方法返回数组。
此方法是数组对象的默认方法。 Array.valueOf()将返回与Array
相同的内容注意:此方法不会更改原始数组。
所以,我问:重点是什么? 是否有理由使用Array.valueOf()
方法?在一些更复杂的构造中是否有用,例如在使用call
或apply
时?它是否有助于将功能组合在一起?这只是因为它创建了一个标准方法,与相关valueOf
更有用的其他对象相比,因此有助于将Array
推广到其他对象吗?
据我所知,它完全相同,所以我看不出它的价值。
答案 0 :(得分:4)
此方法继承自Object.prototype
;来自Object.prototype
的每个对象都有它。原始包装器覆盖它以返回相应的原语,例如,将new Number(5)
转换为5
。默认实现返回对象不变。
JavaScript调用valueOf方法将对象转换为原始值。您很少需要自己调用valueOf方法;当遇到期望原始值的对象时,JavaScript会自动调用它。