这个:
% node
> var o = {valueOf: function() { return 5; } };
undefined
> o += 1;
6
> o
6
> o += 1;
7
> o
7
如果
o
总是返回5,为什么valueOf
值增加? 最佳答案
从问题中看到的o
引用对象的情况开始:
var o = {valueOf: function() { return 5; } };
然后在表达式中
o += 1;
发生的是:
o
的值通过调用.valueOf()
以数字形式获得该值被添加到
1
,从而得到6
该结果分配给变量
o
因此,曾经包含对对象的引用的变量
o
现在包含一个数字。关于javascript - valueOf函数设置为始终返回相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40438491/