作用域安全的构造函数

 1 function Person(name, age, job) {
 2     if (this instanceof Person) {
 3         this.name = name;
 4         this.age = age;
 5         this.job = job;
 6     } else {
 7         return new Person(name, age, job);
 8     }
 9 }
10 
11 var person1 = Person("Nicholas", 29, "Software Engineer");
12 console.log(window.name);
13 console.log(person1.name);
14 
15 var person2 = new Person("Shelby", 34, "Ergonomist");
16 console.log(person2.name);

添加了判断是否调用构造函数来确保this不会被加到window对象上

posted @ 2012-06-08 15:59  小猩猩君  阅读(143)  评论(0编辑  收藏  举报