扩充Object类

knu*_*bie 0 javascript prototype

我在为Object类添加一个方法的想法是如此愚弄:

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

10.is(10); // returns false
Run Code Online (Sandbox Code Playgroud)

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

Ted*_*opp 8

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

PS你需要像(10).is(10)你的代码一样合法的语法.