数字不是函数

时间:2014-09-07 23:45:14

标签: javascript

在我的程序中有一段与此类似的代码:

Number.prototype.print = function(){ console.log(this); };
var a = 1,
    b = a + 2

(a - b).print()

然而,当执行此操作时,它会抛出错误,指出“数字不是函数”。这里发生了什么,为什么会抛出这个错误?

1 个答案:

答案 0 :(得分:1)

在JavaScript中,大多数情况下会自动插入分号。然而,似乎开发ES的人喜欢通过设置分区的奇怪规则来使事情变得更复杂。

在这种情况下,他们决定不为你插入分号,因此代码变为:

var a = 1, b = a + 2(a - b).print()

如您所见,2被解释为函数引用,当然,2作为基元不是函数,因此也就是错误。