1. <script>
    2. // 1.声明对象
    3. var person = {
    4. type: '人类',
    5. say: function() {
    6. console.log('我是' + this.type);
    7. }
    8. }
    9. // 2.使用 Object.create创建的新对象
    10. var obj = Object.create(person);
    11. console.log('obj', obj); // 存在这样的关系: obj.__proto__ === person;
    12. </script>
    13. <script>
    14. // 1.声明一个函数
    15. function madeObj(o) {
    16. // 2.根据传入的对象使用Object.create创建一个对象, 新的对象继承了传入对象的一切属性和方法
    17. var obj = Object.create(o); // obj.__proto__ === o;
    18. // 3.给新的对象添加方法sayName
    19. obj.sayName = function() {
    20. console.log(this.name);
    21. }
    22. // 4.返回新的对象
    23. return obj;
    24. }
    25. // person相当于原型对象的角色
    26. var person = {
    27. name: '人',
    28. nation: '中国',
    29. sayHello: function() {
    30. console.log('hello');
    31. }
    32. }
    33. //5.调用madeObj方法创建对象
    34. var p = madeObj(person);
    35. console.log('p', p); // p对象继承了person对象的属性和方法
    36. p.sayName();
    37. </script>