码迷,mamicode.com
首页 > 其他好文 > 详细

自执行函数简单应用

时间:2014-09-29 18:05:41      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   java   strong   div   问题   c   on   

1、需求

创建一个函数,接受一个数字(0-9),返回该数字相应的英文名称

2、方法一

// global scope...
var names = [‘zero‘,‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘,‘seven‘,‘eight‘,‘nine‘];
var digit_name1 = function(n){
    return names[n];
};

  缺点是把数组被定义在全局作用域中,变量命名容易冲突而且很容易被其他代码修改造成结果不准确

3、方法二

var digit_name2 = function(n){
    var names = [‘zero‘,‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘,‘seven‘,‘eight‘,‘nine‘];
    return names[n];
};

  虽然避免了全局变量的问题,但是每次调用都会重新生成数组并且分配空间,若数组很大,造成性能问题

4、方法三

// "An inner function enjoys that context even after the parent functions have returned."
var digit_name3 = (function(){
    var names = [‘zero‘,‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘,‘seven‘,‘eight‘,‘nine‘];
    return function(n){
        return names[n];
    };
})();

  数组变量定义在自执行方法中,有效避免全局变量问题,而且伴随着匿名function的自动执行,变量只初始化一次,利用闭包特性,内部返回function保存有对names的引用,缺点是闭包用多后会导致内存得不到及时释放造成问题

自执行函数简单应用

标签:blog   io   ar   java   strong   div   问题   c   on   

原文地址:http://www.cnblogs.com/teamobaby/p/4000618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!