浅谈JavaScript初始化模式

初始化模式,简单说,就是在不污染全局命名空间的情况下,使用临时变量,以一种更整洁的方式做一些初始化工作。

一旦提到这个,大多数人会想到即时函数(Immediate Functions,也可称为‘自执行函数’),而且,即时函数也经常用在JS代码模块化或者创建单例对象的场景。

一个典型的即时函数IIFE如下:

(function () {
    var text = 'hello world!';
    alert(text);
}());

显而易见,text是一个临时变量,不会污染全局环境。

其实,还有另外一种不常见的方式:即时对象初始化。

对象初始化

看一个例子就立刻明白了。

({
    width: 300,
    height: 300,
    getArea: function(){
       return this.width * this.height;
    },
    init: function(){
       console.log(this.getArea());
    }
}).init();

在上面的例子里,同样,括号里面的对象,也是一个临时变量,通过立刻执行该对象里的某个函数,完成初始化设置任务。

即时对象初始化有两种写法(两者并无区别):

({...}).init();
({}.init());
小结

即时函数对象初始化没有孰优孰劣的区别,萝卜青菜各有所爱~:)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官方文档 初始化 Initialization是为准备使用类,结构体或者枚举实例的一个过程。这个过程涉及了在实例里...
    hrscy阅读 1,153评论 0 1
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,898评论 0 27
  • 此时,此刻 突然 好想你 我的宝贝儿 现在你睡得是否可好 今天在幼儿园是否开心 今晚在家是否又有哭闹 奶奶是否给你...
    光头强_阅读 496评论 0 0
  • 小镇,不繁华 脚踏车转出的百米之地 在白天,也是时而宁静时而喧嚣 在夜晚,寂静中掩埋着落寞 也有炎炎烈日 也有瑟瑟...
    白茶清欢ii阅读 253评论 4 4
  • 不要自己搭建,采用大公司的登录系统 通过email 或者电话号码来作为登录名, username 和display...
    yangweigbh阅读 3,206评论 0 51