在javascript中所有的对象都具有toLocaleString()、toString()和valueOf()方法。
其中,调用数组的toString()和valueOf方法会返回相同的值,即由数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串。
实际上,为了创建这个字符串会调用数组每一项的toString()方法。
var colors = ["red", "blue", "green"]; //创建一个包含3个字符串的数组 alert(colors.toString()); //red, blue, green alert(colors.valueOf()); //red,blue,green alert(colors); //red,blue,green
在这里,首先显式地调用了toString()和valueOf()方法,以便返回数组的字符串表示,每个值的字符串都表示拼接成了一个字符串,中间可以逗号分割。
最后一行代码直接将数组传递给了alert()。由于alert()要接受字符串参数,所以它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。
另外,toLocalString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。
当调用数组的toLocaleString()方法时,它也会创建一个数组的以逗号分割的字符串。
而与前两个方法唯一的不同指出在于,这因此i是为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法。
例子:
var person1 = { toLocaleString: function () { return "Nikolaos"; }, toString: function () { return "Nicholas"; } } var person2 = { toLocaleString: function () { return "Grigorios"; }, toString: function () { return "Greg"; } }; var people = [person1, person2]; alert(people); //Nicholas,Greg alert(people.toString()); //Nicholas,Greg alert(people.toLocaleString()); //Nikolaos,Grigorios
网友评论文明上网理性发言 已有0人参与
发表评论: