// 原型式继承function A() {this.private = 'private私有'}A.prototype.public = 'public公有'// 原型链继承// const a = new A()// B.prototype = a// B.prototype.constructor = B// 原型式继承// 只负责将父类的公有属性继承为自己的公有属性// 创建了一个新的对象 作为B类原型对象,// 并且这个新的对象 __proto__ === A.prototype// B.prototype.__proto__ === A.prototypeB.prototype = Object.create(A.prototype) // {}.__proto__ === A.prototypeB.prototype.constructor = Bfunction B() {}let b = new B()// console.log(b)// 创建一个新的对象// 并且这个新的对象__proto__ 指向create的第一个实参// Object.create(param1)// const obj1 = {id: 1, name: 'obj1'}// const obj2 = Object.create(obj1)// console.log(obj2.__proto__ === obj1)// const obj2 = Object.create(null)// console.log(obj2)// Object.create(param1)// 创建一个新的对象, 这新的对象__proto__指向的是第一个参数对象param1// const o1 = Object.create({id: 1, name: 'wenli'})// console.log(o1)
