0

我在胡闹,想像这样在 Object 类中添加一个方法:

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

10.is(10); // returns false

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

4

1 回答 1

8

在 JavaScript 中,数字原语不是Number. 当编译器看到10.is它包装10在一个Number对象中时(因为只有对象可以具有属性)。该对象不等于参数10,因为===抑制了自动类型转换。

PS您需要类似的东西(10).is(10)才能使您的代码成为合法的语法。

于 2013-03-03T19:46:19.360 回答