2013-03-03 75 views
0

我打打闹闹与添加一个方法到Object类,像这样的想法:增强Object类

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

10.is(10); // returns false 

我有点受结局烦恼,任何人都可以提供一些见解?

+0

该代码甚至没有运行我 – 2013-03-03 19:46:36

+2

最后一行需要是'10..is(10);' – lonesomeday 2013-03-03 19:47:00

+0

扩展Object.properties是一个坏主意。对于初学者,jQuery会恨你。 – 2013-03-03 19:48:50

回答

8

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

P.S.你需要像(10).is(10)这样的代码才能成为合法的语法。