首页 > Web开发 > 详细

Js中继承模式

时间:2020-01-10 13:40:33      阅读:70      评论:0      收藏:0      [点我收藏+]
//原型工厂模式
    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中继承模式

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!