【发布时间】:2017-03-24 21:28:36
【问题描述】:
我正在学习 javascript,我对 IIFE 语法感到震惊。
我知道要写IIFE,我们需要把函数做成表达式,然后调用它。
我们可以通过在() 之间包装函数来使其成为表达式。或者在函数关键字前面加上+,-,~,!。
现在的问题是,当我使用 ++ 前缀时,我在控制台中遇到错误。
代码:
++function(){console.log("hello")}();
错误:
Uncaught ReferenceError: Invalid left-hand side expression in prefix operation
为什么我不能使用++? ++ 是一元运算符,我认为它会使解释器将匿名函数视为函数表达式,就像 +、- 等一样。
我哪里错了?
【问题讨论】:
-
++foo与foo = foo + 1相同。由于function() {} = function(){} + 1不是一个有效的操作,它会抛出一个错误。
标签: javascript function iife