javascript能干什么返回列表
上传时间:2015-02-02 内容关键字:
3.对象:
如果要将对象转为字符串,则是采用以下步骤。
先调用toString方法,如果toString方法返回的是原始类型的值,则对该值使用String方法,不再进行以
下步骤。
如果toString方法返回的是复合类型的值,再调用valueOf方法,如果valueOf方法返回的是原始类型的
值,则对该值使用String方法,不再进行以下步骤。
如果valueOf方法返回的是复合类型的值,则报错。
String方法的这种过程正好与Number方法相反。
String({a:1})
// "[object Object]"
上面代码相当于下面这样。
String({a:1}.toString())
// "[object Object]"
如果toString方法和valueOf方法,返回的都不是原始类型的值,则String方法报错。
var obj = {
valueOf: function () {
console.log("valueOf");
return {};
},
toString: function () {
console.log("toString");
return {};
}
};
String(obj)
// TypeError: Cannot convert object to primitive value
下面是一个自定义toString方法的例子。
String({toString:function(){return 3;}})
// "3"
String({valueOf:function (){return 2;}})
// "[object Object]"
String({valueOf:function (){return 2;},toString:function(){return 3;}})
// "3"
上面代码对三个对象使用String方法。第一个对象返回toString方法的值(数值3),然后对其使用String方法,得到字符串“3”;第二个对象返回的还是toString方法的值("[object Object]"),这次直接就是字符串;第三个对象表示toString方法先于valueOf方法执行。
- 上一篇:已经没有了
- 下一篇:javascript兼容性总汇