码迷,mamicode.com
首页 > Web开发 > 详细

Js中继承模式

时间:2020-01-10 12:23:20      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:ons   const   end   使用   str   函数   sign   对象   col   

//原型工厂模式
    function extend(target, origin) {
        target.prototype = Object.create(origin.prototype);//此方法创建了一个对象,修改父类原型与子类原型相互独立
        Object.defineProperty(target.prototype, "constructor", {
            value: target,
            enumerable: false
        })
    }


//对象工厂模式 function User(age, name) { this.age = age; this.name = name; } function member(age, name) { let instance = Object.create(User.prototype); User.call(instance, age, name); instance.pri = function () { console.log([age, name]); } return instance; } var queen = member(11, ‘Tom‘);

 

//通过mixin实现多继承 
    let admin = {
        prtadmin() {
            return "admin";
        }
    }

    let user = {
        __proto__: admin, // mixin的内部继承 
        prtuser() {
            console.log(super.prtadmin() + "user"); //super关键字 = this.__proto__
        }
    };

                // 向函数原型内添加方法的三种方式
    
    // Fun.prototype.user = user.prtuser;
    // Fun.prototype.admin = admin.prtadmin; 该方法可以将添加的方法进行重命名

    // Object.assign(Fun.prototype, admin, user); 使用Object.assign方法会改变原对象

    // Fun.prototype = Object.assign(Fun.prototype, admin, user);
    function Fun() {

    }

    let fun = new Fun();

Js中继承模式

标签:ons   const   end   使用   str   函数   sign   对象   col   

原文地址:https://www.cnblogs.com/chuangqianmingyueguang/p/12174672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!