- new实例化一个对象的过程:
- 创建一个新对象
- 将构造函数的this指向这个新对象 – call,apply皆可
- 原型链继承
- 返回新对象
function Person(name, age) {
this.name = name;
this.age = age;
}
console.log(new Person('蒙娜丽莎', 18));
function createPerson(name, age) {
// 1.生成一个新的对象
var obj = {};
// 2.将Person中的this指向obj
// Person.call(obj,name,age);
Person.apply(obj, arguments);
// 3.原型链继承,一旦实例化,实例应该拥有原来的函数的原型属性
obj.__proto__ = Person.prototype;
// 4.返回在这个obj对象
return obj;
}
console.log(createPerson('皮卡丘', 12));