作用域安全的构造函数
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对象上