Javascript函数定义语法
可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}
用JavaScript声明函数
我已经看到了用于在javascript中定义函数的2种不同的语法:
function f() {
...
}
以及
var f = function() {
...
};
这些有什么区别? 其中之一是否被弃用?
这两个都不会被弃用,并且两者都会起作用。 这里的区别在于一个是命名函数( function f()
),另一个是等于函数( var f = function()
)的变量。
设置变量等于函数时必须小心。 这将工作:
var f = function(n) { console.log(n); };
f(3); // logs 3
但是这会中断,因为变量是在调用它之后定义的。
f(3); // what is f? breaks.
var f = function(n) { console.log(n); };
但正常的功能正常工作。
function abc(n) { console.log(n); }
abc(3); // logs 3
xyz(5); // logs 5
function xyz(n) { console.log(n); }
这是因为在执行之前分析代码,并且可以调用所有功能。 但设置一个var等于一个函数就像设置一个var到其他任何东西。 什么时候发生的顺序很重要。
现在有些更令人困惑的东西......
还有'自动执行'的匿名功能。 他们有各种各样的名字。 最常见的做法如下所示:
(function() {
// code in here will execute right away
// since the () at the end executes this (function(){})
})();
还有一个可以说是更好的版本。
!function() {
// again, the tailing () will execute this
}();
看看这个堆栈溢出帖子了解更多匿名函数。
链接地址: http://www.djcxy.com/p/2833.html