Javascript 数字不是一个函数
在我的程序中,有一段代码的结构与此类似:Javascript 数字不是一个函数,javascript,Javascript,在我的程序中,有一段代码的结构与此类似: Number.prototype.print = function(){ console.log(this); }; var a = 1, b = a + 2 (a - b).print() 然而,当执行此操作时,它会抛出一个错误,说明“number不是函数”。这里发生了什么以及为什么会抛出此错误?在JavaScript中,大多数情况下会自动插入分号。然而,似乎开发ES的人喜欢通过设置奇怪的分号放置规则来使事情变得更复杂 在本例中,他们决定不
Number.prototype.print = function(){ console.log(this); };
var a = 1,
b = a + 2
(a - b).print()
然而,当执行此操作时,它会抛出一个错误,说明“number不是函数”。这里发生了什么以及为什么会抛出此错误?在JavaScript中,大多数情况下会自动插入分号。然而,似乎开发ES的人喜欢通过设置奇怪的分号放置规则来使事情变得更复杂 在本例中,他们决定不为您插入分号,因此代码如下:
var a = 1, b = a + 2(a - b).print()
如您所见,
2
被解释为函数引用,当然,2
作为原语不是函数,因此是错误。@jfriend00-确实如此。我只漏掉了一个分号,然后砰的一声,花了我相当长的时间才弄清楚哪里出了问题。这是采用一致模式的一个很好的理由,无论是保留还是删除分号。像我这样以elide开头的人,从来不会以[
或(
开头不带分号。因此,我们不太可能碰到这样的bug。