JavaScript 中,由数组得到字符串的细节问题
在红宝书中,NCZ 说在由数组得到字符串值时,是对数组中的每一项元素调用了相应的方法,比如显式调用数组的 toString() 方法或者在需要使用字符串参数的地方默认调用 toString() 方法,会对数组的各项元素分别调用 toString() 方法,然后得到对应的字符串值。或者显式调用数组的 toLocaleString() 方法,那么就会对各元素也调用 toLocaleString() 方法,然后得到相应的字符串值。
所以按照我的理解,我试着做了更改 Number.prototype.toString = function() { return 'w_e'; } ,然后执行 [1,2].toString() ,但是结果还是 '1,2' 。
请问这里的错误在哪里?谢谢。
ronson
9 years, 7 months ago
Answers
这是说的每一项元素应该是指非基本类型元素,像数字和布尔值等基本类型函数应该不会。不信你可以试一下这个 DEMO:
var arr = [function a(){}, function b() {}];
console.log("Normal toString: ", arr.toString());
Function.prototype.toString = function() { return this.name; };
console.log("Custom toString: ", arr.toString());
KAIYSA
answered 9 years, 7 months ago