JavaScript 的函数也是变量,这是 JavaScript 与众多其它编程语言一个较大的不同之处。虽然它可能会使 JavaScript 的初学者有一点困难,但也允许你做一些在其它语言中不能做却着实非常酷的事情。 我说函数是变量,意思是函数将与数组、数字、字符串和其它对象一样被同等对待。这意味着你可以更加灵活地做一些事情。 你可以将函数定义和重定义为局部变量: var myFunc; if (Math.random() <0.5) { myFunc = function() { alert('heads'); }; } else { myFunc = function() { alert('tails'); }; } myFunc(); // alerts "heads" or "tails" depending on random value 你也可以把函数作为参数传给其它函数,这对编写回调函数非常有用: function do_something(callback_function) { alert('hello'); if (callback_function) { callback_function(); } } var my_callback = function() { alert('goodbye'); }; do_something(my_callback); // alerts "hello" and then "goodbye" 你还可以将函数作为函数的返回值: function get_multiplier(factor) { return function(num) { return num * factor; }; } var times_5 = get_multiplier(5); var result = times_5(10); alert(result); // alerts "50" var six_times_two = get_multiplier(6)(2); alert(six_times_two); // alerts "12" 你更可以定义甚至执行一个“匿名的”函数,而不需要指定函数名: (function(first_name, get_last_name) { var last_name = get_last_name(); alert(first_name + ' ' + last_name); // alerts "Jesse Skinner"; })('Jesse', function(){ return 'Skinner'; }); 注意:为了执行一个匿名函数,首先你需要使用一对括弧 () 包住它。 这些就是用 JavaScript 做到的“不寻常的”事情。一旦你对这个概念熟悉后,你将可以使用非常棒的新方式来真正地复用代码。 原文地址:JavaScript Functions are Variables,译文地址:JavaScript 的函数也是变量,由 北极冰仔 翻译。 ×

评论