我一直在想一个将方法添加到Object类中的想法,如下所示:
Object.prototype.is = function(operand) {
return this === operand;
};
10.is(10); // returns false
我对结果感到有点烦恼,有人能提供一些见解吗?
答案 0 :(得分:8)
在JavaScript中,数字基元不是Number
的实例。当编译器看到10.is
时,它将10
包装在Number
对象中(因为只有对象可以具有属性)。该对象不等于参数10
,因为===
禁止自动类型转换。
P.S。您需要(10).is(10)
之类的代码才能使代码成为合法语法。