如果不使用new来调用,那么将会按照普通函数的调用方法,那么this指向的将会成为window。。。。所以需要进行进一步的判断
function People(name, age, sex) {
// 判断this指向了谁, 从而决定后续代码
if (this === window) {
// 说明是当做了普通函数来调用,普通函数想要返回一些东西,需要return
return new People(name, age, sex);
} else {
// 说明 使用new 来调用, 一切正常
this.name = name;
this.age = age;
this.sex = sex;
}
}
// // 测试
// var p = new People("小明", 12, "男");
// var p1 = People("小红", 11, "女");
// console.log(p);
// console.log(p1);
//
//