上下文绑定语法

时间:2016-06-22 08:20:24

标签: javascript

让我们假设我们有

function () {}.bind(null);

(function () {}).bind(null);

为什么第一个在开发者控制台中不起作用(它会引发语法错误),但它们都在代码中工作(" .js"网站中的文件)。

1 个答案:

答案 0 :(得分:3)

我认为是因为你试图定义一个匿名函数。控制台没有未来的引用方式,所以它是一个毫无意义的努力,你定义一个你无法调用的函数。如果将其定义为变量,则可以使用:

 var a = function () {}.bind(null); 

另外,我不认为它的约束力相关。定义一个没有绑定的匿名函数,你有相同的错误

编辑

  

以关键字“function”开头的语句必须是有效的   功能声明声明。这需要函数的名称。

     

在表达式(或表达式语句)中,该规则是不同的;没有   name是必要的,因为函数充当其中的值   上下文。那时不需要名字。

  

函数声明不能​​是匿名的,而是函数表达式   能够。独立的匿名函数看起来像一个函数   声明缺少JavaScript的标识符。但是,结合起来   使用运算符,JavaScript将匿名函数视为   运算符的操作数表达式。