Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数字不是一个函数_Javascript - Fatal编程技术网

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。