在Javascript中,每个对象都有一个valueOf()和toString()方法。我原以为每当调用字符串转换时都会调用toString()方法,但显然它被valueOf()所取代。
例如,代码
var x = {toString: function() {return "foo"; },
valueOf: function() {return 42; }};
window.console.log ("x="+x);
window.console.log ("x="+x.toString());
将打印
x=42
x=foo
这让我觉得倒退..如果x是一个复数,例如,我希望valueOf()给我它的大小,但每当我想转换成一个字符串我就会想要像“a + bi”这样的东西。而且我不想在隐含字符串的上下文中显式调用toString()。
这只是它的方式吗?
哔哔one
呼唤远方
相关分类