javaScript为基本数据类型值提供了封装对象,例如Number,String,Boolean等
var a = new Number(3);
typeof a;//"object"
var i = 2
Number.prototype.valueOf = function(){
return i++
}
console.log(a == 2 && a ==3)//true
var a = new Number(3);
typeof a;//"object"
var i = 2
Number.prototype.valueOf = function(){
return i++
}
console.log(a == 2 && a ==3)//true
__proto__属性上定义了valueOf的方法用来取得红框内的[[PrimitiveValue]]在这里可以取得3;如果对Number的原型对象方法ValueOf进行重写,在进行访问[[PrimitiveValue]]时将值改为2,并实现++操作,即可实现该需求。