Why should I assign a function to a variable in javascript?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
JavaScript: var functionName = function() {} vs function functionName() {}
What is the difference between a function expression vs declaration in Javascript?
我试图理解JavaScript的"最佳实践"。
此代码来自jqfundementals.com
1 2 3 4 5 6 7 8 9 | // 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' ); |
为什么要将函数赋给greet变量?
我的第一个冲动是这样写:
1 2 3 4 | function greet ( person, message ) { var greeting = 'Hello, ' + person + '!'; log( greeting + ' ' + message ); }; |
这两种实现之间的区别是什么?
这些片段之间没有任何区别,除了提升,它允许您在定义之前的行中调用前一个函数。但这只是一个让你热身的简单例子。事实上,人们不会将这些函数分配给变量,而是直接将它们传递给其他函数。或者他们在表达环境中使用它们。或者它们动态地决定要存储哪个函数。或者其他真的。
没有真正的区别,但是
简单例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var func1, func2; func1 = function (count) { count = count - 2; if (count > 0) { func2(count); } } func2 = function (count) { func1(count + 1); } func1(10); |
虽然
1 2 3 4 5 6 7 8 9 10 11 12 | function func1 (count) { count = count - 2; if (count > 0) { func2(count); } } function func2 (count) { func1(count + 1); } func1(10); |
也是完全可以接受的。由于起重方式不同,翻译人员将用前者替换。