问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

原型继承 和 类继承 的区别

发布网友 发布时间:2022-05-07 13:12

我来回答

1个回答

热心网友 时间:2022-05-17 05:01

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) {
//这个类中要调用超类Person的构造函数,并将参数name传给它
Person.call(this, name);
this.sex = sex;
}
//这个子类的原型对象等于超类的实例
Programmer.prototype = new Person();
//因为子类的原型对象等于超类的实例,所以prototype.constructor这个方法也等于超类构造函数,你可以自己测试一下,如果没这一步,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());//Darren2

2.JS原型继承:
/* -- 原型式继承 -- */
//clone()函数用来创建新的类Person对象
var clone = function(obj) {
4
var _f = function() {};
//这句是原型式继承最核心的地方,函数的原型对象为对象字面量
_f.prototype = obj;
return new _f;
}
//先声明一个对象字面量
var Person = {
name: 'Darren',
getName: function() {
return this.name;
}
}
//不需要定义一个Person的子类,只要执行一次克隆即可
var Programmer = clone(Person);
//可以直接获得Person提供的默认值,也可以添加或者修改属性和方法
alert(Programmer.getName())
Programmer.name = 'Darren2'
alert(Programmer.getName())
//声明子类,执行一次克隆即可
var Someone = clone(Programmer);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谈过几次恋爱才知道爱情的真谛? 已知函数fx﹦Asin(ωx+ψ),(ω>0,A>0,ψ∈(0,π/2)) 求fx解析式 已知a... 已知函数fx=sin(wx+Ф)(其中w> 数学:函数f(x)=Asin(ωx+φ)(其中A>0,|φ|<π/2)的图像如图所示,为了... 函数fx=sin(x-π/12)xsin(x+5π/12),求最小正周期 已知函数fx=Asin(wx+φ),(w>0,A>0,φ∈(0,π/2)的部分图像如图所示... 已知函数f(x)=Asin(wx+φ)(x∈R,w>0,0<φ<π/2)的部分图像如图所示... 珠江的型号怎么那么多?都说自己的好,看晕了,到底那个好啊? ...ωx+φ)的图像关于直线x=π/3对称,且f(π/12)=0,则当ω取最小值... 朋友介绍买珠江的钢琴,上网一查型号那么多,真头晕,请问珠江P、T、R... 关于JS原型继承的问题 js 原型继承 以及 constructor 问题 ...原型链继承,要很详细很详细解答!高悬赏,js大神们快来看看!_百度知 ... 您好,我购买的联想BKC600蓝牙键盘充电数据线被弄断了,现在无法充电,请问哪里可以购买到充电数据线? 手机和电脑连接用蓝牙或数据线哪个好? 联想BKC600蓝牙键盘怎么冲电 蓝牙键盘上的充电口能当u口与电脑连接吗? 苹果平板电脑蓝牙键盘那根数据线干嘛用的 淘宝上买键盘都送数据线吗 天水师范学院研究生有必要读吗 问道手游敏水带电精和风怪哪个好 和风萝卜烧松阪肉的做法? 人生是一本怎样的书呢?有的人平平淡淡,和风细雨,但他的人生之书却丰富细腻;仿写两句,不要标准答案。 星和风是形声字吗 仙剑奇侠传三的技能雷觉和风源分别给谁学最好 石景山区有没有什么好玩的地方时候情侣去的~~ 北京周边民俗景点有哪些 北京有什么观音庙或者道观?香火很旺的!人们常常祭拜的神仙庙?说下具体位置? 梅艳芳的灵位在北京的哪个寺庙???跪求 北京八大处的具体位置 我想去~ js通过原型链继承 的疑问??? js原型继承输出疑问 图像存入MySQL数据库longBLOB出错 今年的司法考试成绩什么时候出来 司考成绩什么时候出 spss中介效应的问题,y=cx+e1, M=ax+e2, y=c'x+bm+e3,我想问的是a或是b有没有可能大于总效应c当把M参加时 开发贷是什么意思? 房产贷款都有哪些种类 房地产行业流动资金贷款 下列哪些贷款属于短期贷款?( )。A、流动资金贷款B、 项目贷款C、 房地产开发贷款D、 法人账户透支 华为手机怎么更改 华为手机如何更改? 华为手机微信群里备注显示的都是wix? 小米mix2支持双卡双待吗 青字的上半部读什么 小米MIX2,电信卡可以当做副卡用吗 青字的上面是什么字 “青”字上半部分,但下面'月"字里面不是两横,而是一竖一横(竖在上横在下) 这是什么字? 青字上部分怎么念 青字的上部分是主吗?