可能的重复:
JavaScript: var functionName = function() {} vs function functionName() {}
Javascript 中的函数表达式与声明之间有什么区别?
我试图了解 javascript 的“最佳实践”。
此代码来自jqfundementals.com
// create a function that will greet a person,
// and assign the function to the `greet` variable
var greet = function( person, message ) {
var greeting = 'Hello, ' + person + '!';
log( greeting + ' ' + message );
};
greet( 'Jory', 'Welcome to JavaScript' );
greet( 'Rebecca', 'Thanks for joining us' );
Run Code Online (Sandbox Code Playgroud)
为什么我应该将函数分配给 greet 变量?
我的第一个冲动是这样写:
function greet ( person, message ) {
var greeting = 'Hello, ' + person + '!';
log( greeting + ' ' + message );
};
Run Code Online (Sandbox Code Playgroud)
这两种实现有什么区别?
Hal*_*yon -2
没有真正的区别,但var如果您有递归函数,该形式使您可以在使用前声明。
简单的例子:
var func1, func2;
func1 = function (count) {
count = count - 2;
if (count > 0) {
func2(count);
}
}
func2 = function (count) {
func1(count + 1);
}
func1(10);
Run Code Online (Sandbox Code Playgroud)
虽然
function func1 (count) {
count = count - 2;
if (count > 0) {
func2(count);
}
}
function func2 (count) {
func1(count + 1);
}
func1(10);
Run Code Online (Sandbox Code Playgroud)
也是完全可以接受的。由于变量提升,解释器会将其替换为前者。
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |