Js中继承模式

Posted chuangqianmingyueguang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js中继承模式相关的知识,希望对你有一定的参考价值。

//原型工厂模式
    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中继承模式的主要内容,如果未能解决你的问题,请参考以下文章

js中继承

是否有在单个活动中处理多个片段的 Android 设计模式?

在mongodb中继承一个集合的属性[重复]

在 C# 中继承泛型

js中的6中继承方式

js中5中继承方式分析