js继承模式
Posted 巷陌i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js继承模式相关的知识,希望对你有一定的参考价值。
1、传统形式 ----> 原型链
过多的继承了没用的属性
Grand.prototype.lastName = "1"; function Grand(){ } var grand = new Grand(); Father.prototype = grand; function Father() { } var father = new Father(); Son.prototype = father; function Son() { } var son = new Son();
2、借用构造函数
不能继承借用构造函数的原型
每次构造函数都要夺多走一个函数
function Person(name, sex, age) { this.name = name; this.sex = sex; this.age = age; } function Student(name, sex, age, grand) { Person.call(this, name, sex, age); this.grand = grand; } var student = new Student();
3、共享原型 //缺点 :一个值改另一个也跟这改
不能随便改动自己的原型
Father.prototype.lastName = ‘Deng‘; function Father() { } function Son() { } function inherit(Target , Origin){ Target.prototype = Origin.prototype } inherit(Son , Father); var son = new Son(); var father = new Father();
4、圣杯模式
function inherit(Target , Origin){ function F(){} F.prototype = Origin.prototype; Target.prototype = new F(); Target.prototype.constructor = Target; Target.prototype.uber = Origin.prototype; } Father.prototype.lastName = ‘Deng‘; function Father() { } function Son() { } inherit(Son , Father); var son = new Son(); var father = new Father();
私有化变量的应用
function Li(name , wife){ var preareWife = "xiaozhang"; this.name = name; this.wife = wife; this.divorce = function () { this.wife = preareWife; }; this.changPrepareWife = function (target) { preareWife = target; }; this.sayPrapreWife = function () { console.log(preareWife); } } var li = new Li("li" , "xiaoLi")
以上是关于js继承模式的主要内容,如果未能解决你的问题,请参考以下文章