扩充Object类

时间:2013-03-03 19:44:35

标签: javascript prototype

我一直在想一个将方法添加到Object类中的想法,如下所示:

Object.prototype.is = function(operand) {
  return this === operand;
};

10.is(10); // returns false

我对结果感到有点烦恼,有人能提供一些见解吗?

1 个答案:

答案 0 :(得分:8)

在JavaScript中,数字基元不是Number的实例。当编译器看到10.is时,它将10包装在Number对象中(因为只有对象可以具有属性)。该对象不等于参数10,因为===禁止自动类型转换。

P.S。您需要(10).is(10)之类的代码才能使代码成为合法语法。