1. // 原型式继承
    2. function A() {
    3. this.private = 'private私有'
    4. }
    5. A.prototype.public = 'public公有'
    6. // 原型链继承
    7. // const a = new A()
    8. // B.prototype = a
    9. // B.prototype.constructor = B
    10. // 原型式继承
    11. // 只负责将父类的公有属性继承为自己的公有属性
    12. // 创建了一个新的对象 作为B类原型对象,
    13. // 并且这个新的对象 __proto__ === A.prototype
    14. // B.prototype.__proto__ === A.prototype
    15. B.prototype = Object.create(A.prototype) // {}.__proto__ === A.prototype
    16. B.prototype.constructor = B
    17. function B() {}
    18. let b = new B()
    19. // console.log(b)
    20. // 创建一个新的对象
    21. // 并且这个新的对象__proto__ 指向create的第一个实参
    22. // Object.create(param1)
    23. // const obj1 = {id: 1, name: 'obj1'}
    24. // const obj2 = Object.create(obj1)
    25. // console.log(obj2.__proto__ === obj1)
    26. // const obj2 = Object.create(null)
    27. // console.log(obj2)
    28. // Object.create(param1)
    29. // 创建一个新的对象, 这新的对象__proto__指向的是第一个参数对象param1
    30. // const o1 = Object.create({id: 1, name: 'wenli'})
    31. // console.log(o1)