例如:
Object.prototype.toString.call(new Date); // [object Date]
Object.prototype.toString.call(new Array); // [object Array]
Object.prototype.toString.call(new Object); // [object Object]
现在考虑以下内容:
var PhoneNumber = function(number) {
this.number = number;
}
我可以重写toString()
方法,但它并不能真正地更改对象类型。它只是有点欺骗性:
PhoneNumber.prototype.toString = function() {
return '[object PhoneNumber]';
}
new PhoneNumber().toString(); // [object PhoneNumber]
然而,高超的黑客知道我的 toString()
方法是虚假的,我是一个新手:
Object.prototype.toString.call(new PhoneNumber); // [object Object]
无论原型上的toString()方法是否被覆盖,我希望得到的结果都是:
Object.prototype.toString.call(new PhoneNumber); // [object PhoneNumber]
这是可能的吗?