javascript anonymous function variable assignement
本问题已经有最佳答案,请猛点这里访问。
可能不是最好的问题,但我有一个疑问。
写这个有什么不同吗:
1 2 | var myFunction = function myFunction () {}; myFunction.instance = null; |
而这:
1 2 | var myFunction = function () {}; myFunction.instance = null; |
编辑:请仔细阅读,这不是此var functionname=function()vs function functionname()的副本上面的链接解释了提升,这里是关于两个提升函数的分配,一个匿名,一个不匿名。
不,没有区别。
在这两种情况下,都会创建一个新的函数对象(通过函数表达式),将其分配给一个变量,然后通过属性分配进行变异。
唯一的区别是,一个函数有一个指定的名称,这可能被证明是有用的:参见
不是真的。
主要区别在于代码的大小(一条语句较长),因为将函数存储到变量中会忽略实际的函数名:
1 2 | var a = function b() {}; console.log(b); // Uncaught ReferenceError: b is not defined(…) |
在这种情况下,它看起来是相同的,原因是您对两者都使用了相同的变量名,因此您的变量将指向函数。
另一个差异是用户2864740指出的从
1 2 3 4 | var a = function b() {}; console.log(a.toString()); //"function b() {}" var c = function() {}; console.log(c.toString()); //"function () {}" |