Javascript - 创建对象的安全模式

来源:互联网 发布:2017酒店行业市场数据 编辑:程序博客网 时间:2024/09/21 08:15

安全模式1

  • 若创建对象时不使用new关键字,则可能会导致原本为对象的属性和方法创建到全局变量上
// 比如:var instance = Book('title','name'); // 这里Book()函数在全局作用域中执行了,而如果Book没有返回值,则instance的值是undefined
  • 避免创建无效对象的解决方法是:在定义构造函数时加入判断
var Book = function(title, time){    // 判断执行过程中this是否当前对象(如果是,说明是用new创建的)    if (this instanceof Book) {        this.title = tile;        this.time = time;    // 否则重新创建这个对象    } else {        return new Book(title, time);    }}

  1. 出自《JavaScript设计模式》,张荣铭 著 ↩
0 0
原创粉丝点击