| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- /**
- * 寄生式继承
- * 实现:原型式继承+工厂模式
- * 通过Object.create创建父对象
- * 在创建的对象上添加一些拓展属性和方法
- * 返回创建的对象
- * 优点:
- * 不需要构造函数 不需要new
- * 可以给对象统一的添加属性和方法
- * 缺点:
- * 不能传参
- * 共享实例 一个发生改变则全部改变
- */
- function createObj(x) {
- let obj = Object.create(x);
- obj.address = '上海';
- obj.say1 = function () {
- console.log("hi");
- }
- return obj;
- }
- let Father = {
- name: "图图",
- age: 3,
- list: ["吃饭", "睡觉", "打豆豆"],
- say() {
- console.log("hello");
- }
- }
- let Child = createObj(Father);
- let Child1 = createObj(Father);
- Child.list.push("玩耍");
- console.log(Child, 'child')
- console.log(Child1, 'child')
- Child.say();
- Child.say1();
- </script>
- </body>
- </html>
|