1. 先看代码
function Person(){ this.name = '朱小明'; this.fn = function(){ console.log('名字是:' + this.name) } } let person1 = new Person(); // person1 拥有Person的属性和方法 person1.fn()
- 在这段代码里,通过new关键字创建了一个实例 person1
- person1 继承了Person的所有属性和方法
2. 内部具体实现如下
// 1. 创建一个空对象 let obj = new Object(); // Object => 基类 // 2.设置它的原型链 obj._proto_ = Person.prototype; // 3. 改变this指向 let result = Person.call(obj) // 4.判断返回值类型 if(typeof (result) == "object"){ person1 = result }else{ person1 = obj; }