• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312343

收藏总数310874

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方法执行。


 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家