const obj={ a:1, b:2, toString(){ return `a=${this.a},b=${this.b}`; }, }; obj.toString(); //a=1,b=2 "对象字符串为"+obj; //对象字符串为a=1,b=2上述代码中的 obj 在最后隐式地转换成了字符串,并调用了 toString() 方法生成了自定义的字符串。
const obj={ a:1, b:2, valueOf(){ return this.a+this.b; }, }; obj.valueOf();//3 +obj; //3 obj-2; //1注意:示例中的
+obj
同样返回了 valueOf() 的结果,因为一元加可以把非数字类型的值转换为数字类型,而在最后一行obj-2
中,减法也需要操作数是数字类型,所以 obj 就调用了 valueOf() 方法隐式地转换成了数字。
本文链接:http://task.lmcjl.com/news/5599.html