// 原型式继承
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.prototype
B.prototype = Object.create(A.prototype) // {}.__proto__ === A.prototype
B.prototype.constructor = B
function 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)