[英]Override valueOf method cause diffrence on console.log(+[])?
您忘记了return
包装函数的结果。
proto.valueOf = function(){
debugger;
return valueOf.apply(this,arguments);
// ^^^^^^
};
顺便说一句,您应该真正避免覆盖Object.prototype.valueOf
。 只需使用自己的方法提供要测试的对象即可。
添加一个return
语句:
var proto = [].__proto__.__proto__
var valueOf = proto.valueOf
proto.valueOf = function(){
debugger;
// You have to add a return statement here.
return valueOf.apply(this,arguments);
}
是的,重写Object
的__proto__
并不是一个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.