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