正文

JavaScript 的函数也是变量2012-11-17 10:06:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/edwardguo/53883.html

分享到:

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 的函数也是变量,由 北极冰仔 翻译。

×

阅读(1453) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册