本文實例為大家分享了js類式繼承與原型式繼承相關(guān)代碼,供大家參考,具體內(nèi)容如下
1.js類式繼承
/* -- 類式繼承 -- *///先聲明一個超類function Person(name) {this.name = name;}//給這個超類的原型對象上添加方法 getName Person.prototype.getName = function() {return this.name;}//實例化這個超var a = new Person('Darren1')console.log(a.getName());//Darren1//再聲明類function Programmer(name, sex) {//這個類中要調(diào)用超類Person的構(gòu)造函數(shù),并將參數(shù)name傳給它Person.call(this, name);this.sex = sex;}//這個子類的原型對象等于超類的實例Programmer.prototype = new Person();//因為子類的原型對象等于超類的實例,所以prototype.constructor這個方法也等于超類構(gòu)造函數(shù),你可以自己測試一下,如果沒這一步,console.log(Programmer.prototype.constructor這個是Person超類的引用,所以要從新賦值為自己本身console.log(Programmer.prototype.constructor);/*function Person(name) {this.name = name;} */Programmer.prototype.constructor = Programmer;console.log(Programmer.prototype.constructor);/*function Programmer(name, sex) {Person.call(this, name);this.sex = sex;} *///子類本身添加了getSex 方法Programmer.prototype.getSex = function() {return this.sex;}//實例化這個子類var _m = new Programmer('Darren2', 'male');//自身的方法console.log(_m.getSex());//male//繼承超類的方法console.log(_m.getName());//Darren22.js原型式繼承
/* -- 原型式繼承 -- *///clone()函數(shù)用來創(chuàng)建新的類Person對象var clone = function(obj) {4var _f = function() {};//這句是原型式繼承最核心的地方,函數(shù)的原型對象為對象字面量_f.prototype = obj;return new _f;}//先聲明一個對象字面量var Person = {name: 'Darren',getName: function() {return this.name;}}//不需要定義一個Person的子類,只要執(zhí)行一次克隆即可var Programmer = clone(Person);//可以直接獲得Person提供的默認值,也可以添加或者修改屬性和方法alert(Programmer.getName())Programmer.name = 'Darren2'alert(Programmer.getName())//聲明子類,執(zhí)行一次克隆即可var Someone = clone(Programmer);以上就是本文的全部內(nèi)容,希望對大家學習javascript程序設(shè)計有所幫助。
新聞熱點
疑難解答