当前位置:首页 > 日记 > 正文

Javascript原型链与继承

Javascript原型链与继承
JS原型链和继承是JS的重点,所以我们通过下面三个例子进行详细的讲解。
首先,一个obj对象的定义,对象是类的原型。_proto_,我们可以利用这个方法getprototypeof ES5的查询对象的原型,我们判断目标和object.prototype等于证明对象的原型存在的原型,答案返回true,因此我们定义。一个函数(Foo),任何函数有一个原型对象,该函数的原型,我们可以在函数原型的任何属性,在共享属性,可以通过一个新的对象实例化(下面的两个例子将详细介绍)。
函数(富){ }
原型= z = 3;
var obj =新foo();
obj。x = 1;
Obj。Y = 2;
obj。X / / 1
Obj。Y / / 2
obj。Z / / 3
类型obj.tostring; / /功能
(obj值); / / foo { x:1,Y 2,Z 3 }
obj.hasownproperty(Z); / /假

在这里,对对象的原型(_proto_)原型指向foo函数的foo.prototype到object.prototype原型,在原型链的末端是空的,通过hasownproperty看Z属性对象,显示虚假,obj Z属性,但找到原型链,发现foo.prototype所以,OBJ。z = 3,和对象的值)为第一(和toString是Object.prototype,所以任何对象,因为任何对象的原型是Object.prototype这两个属性。除下列特殊情况外,
var obj2 = object.create(空);
obj2.valueof(); / /未定义
object.create()是创建一个空的对象,以及对象的原型指向参数。以下综合的示例说明了如何实现一个类继承另一个类
声明构造函数
功能人(姓名,年龄){
this.name =名称;
this.age =年龄;
}
person.prototype.hi =函数(){
console.log(嗨我,名字是+ this.name + ',我的年龄是这个年龄);
};
人的原型。legs_num = 2;
人的原型。arms_num = 2;
person.prototype.walk =函数(){
console.log(这名字+是步行!;
};
功能学生(姓名、年龄、classnum){
person.call(这名字,年龄);
this.classnum = classnum;
}
创建空对象
student.prototype = object.create(人。原型);
构造函数指定创建对象的函数。
student.prototype.constructor =学生;
student.prototype.hi =函数(){
console.log(嗨我,名字是+ this.name + ',我的年龄+年龄+我这类+,classnum);
};
student.prototype.learns =功能(子){
(这是console.log。姓名+学习+子);
};
/ /宝山对象实例化
var宝山=新学生('bosn ',27,' 3 ');
Bosn.hi(); / /你好,我的名字是博神,我27岁,我的3级
bosn.legs_num; / / 2
Bosn.walk(); / /宝山走!
Bosn.learns('math '); / /宝山是学习数学

构造函数的人和这个学生点实例化的对象(宝山),和对象的原型指向构造函数的原型。

我们用object.create()创建一个空的对象的方法,对person.prototype原型问题的对象,这样我们就可以写出好的可以自己创造studnet.prototype任意属性不影响person.prototype性能,并能承受原person.prototype的性质,因为学生是子类继承人。如果我们写person.prototype = student.prototype直接,他会指向一个对象在同一时间两。Student.prototype添加属性时,该属性将添加到人的原型链。

对于构造函数中的调用方法,这个方法指向新创建的学生的实例化对象,并通过调用实现继承。

student.prototype.constructor =学生。这句话的意思是指定的学生作为一个函数来创建student.prototype对象。如果没有写,对象的功能是人。

实现继承有三种方法。
功能人(姓名,年龄){
this.name =名称;
this.age =年龄;
}
功能学生(){

}
student.prototype = person.prototype; / / 1
student.prototype = object.create(人。原型); / / 2
student.prototype =新的人(); / / 3

第一,刚才提到的,直接将子类和基类的该公司的实例。

第二,只是为了避免这一点,而继承的好实现,让实例先查询子类,如果没有相应的属性,那么查询基类;

第三个,虽然它也实现继承,但是调用人的构造函数。在这个例子中,构造函数有两个参数名称和年龄,但是这第三个类型没有被传输,它们没有被实例化。

以上是本文的全部内容,希望大家能喜欢。

相关文章

如何进行固定在一个表格的表头Exce

如何进行固定在一个表格的表头Exce

教程,表头,表格,电脑软件,有时我们在Excel中计算数据时,我们希望保留标题的一些固定名称,然后向下滚动数据查看数据。我们希望修复上面的成绩单和名字,语言,数学和其他科目,然后滚动看到的名字和分数如下。具体操作如下: 首先,我们将鼠标定位到所…

只有8步PS图象处理软件简单地创建

只有8步PS图象处理软件简单地创建

图象,处理软件,简单,电脑软件,PS,这是PS图象处理软件创建一个双曝光教程8步骤。这个教程真的很好。非常适合初学者学习。推荐喜欢的朋友可以一起学习教程,希望能对你有所帮助。 在许多海报和图片中都可以看到这种双重曝光效果,这种效果是由两…

PHP使用GD库创建缩略图

PHP使用GD库创建缩略图

缩略图,电脑软件,PHP,GD,本文演示了PHP使用GD库创建图片缩略图的方法: 上传页面的静态HTML代码: 文件上传 文件上传 U3000 U3000 U3000 U3000 相应的upload.php文件代码: 为uploadFile =upfiles / 。_files { } { 'upfile美元的'name' …

jQuery结合ajax动态加载文本内容

jQuery结合ajax动态加载文本内容

文本,动态加载,内容,电脑软件,jQuery,Ajax()方法通过HTTP请求加载远程数据。 这种方法是jQuery的Ajax实现的基础。简单易用的高水平看,实施美元。美元。后等等。美元。Ajax()返回的XMLHttpRequest对象的创建。在大多数情况下,你不需要直接操作功…

如何在ps中做路径文本

如何在ps中做路径文本

文本,路径,中做,如何在,电脑软件,一个水平直线,不仅是文本的方向,也可以使用定义的路径。方法很简单,下面的小编辑器详细介绍给大家介绍,不是朋友可以跟着教程一起学习的。 在美化的过程中,我们需要用文字来修改一些图片。一般来说,我们在水平和…

用ps制作图像水印和文本水印的方法

用ps制作图像水印和文本水印的方法

文本,方法,图像,水印,电脑软件,本教程是介绍给朋友的PS制作图片和文字水印,教程真的很好,很适合初学者学习,推荐给喜欢的朋友可以一起学习教程,希望大家喜欢。 在图片中添加水印是一个非常简单的问题。有些朋友不懂PS,那么它就在事实上,它是由诗…

两种CorelDRAW操作方法介绍

两种CorelDRAW操作方法介绍

操作方法,两种,电脑软件,CorelDRAW,本教程介绍朋友两种变形的操作方法在CorelDraw。这个教程很好。我建议像你这样的朋友一起学习,希望能对你有所帮助。 今天的教程介绍了CorelDRAW的朋友两变形方法。到现在为止,我不知道这两种方法是否都是…

使用PS图象处理软件迅速做出可爱的

使用PS图象处理软件迅速做出可爱的

字符,字体,图象,处理软件,可爱,把手教你用PS图象处理软件让可爱的雪糖果字体 Maxivista你快速创建一个可爱的白色糖果,字体与PS图象处理软件,让甜蜜的圣诞字体例,对PS图象处理软件感兴趣的同学哦,最适合的课程,字体纹理细腻圆润,晶莹剔透,让人有一…

PPT是如何为像素文本和像素图像制

PPT是如何为像素文本和像素图像制

像素,图像,何为,基础教程,电脑软件,本文介绍了一种利用PPT中的表格矢量化,逐步实现像素和像素图片的方法: 1。插入表格 1,单击插入选项中的表按钮。 2,在矩阵区域中直接选择表排名的数目。 三.如果矩阵的行数超过了矩阵的数目,则可以插入输入列…

面部智能机器人PS图象处理软件合成

面部智能机器人PS图象处理软件合成

智能机器人,冷却,图象,面部,处理软件,本教程介绍智能机器人面对PS图象处理软件合成教程效果很酷,效果很酷,很详细的教程,推荐给爱,朋友可以按照教程一起学习哦 最近,太空科幻电影红颜薄命电影,科幻小说和火热的。除了空间作为一种流行的科幻小说…

ai结合PS制作时尚流行的线条艺术海

ai结合PS制作时尚流行的线条艺术海

流行,线条,海报,艺术,时尚,本教程是向朋友介绍ai和PS制作非常时尚和大气的线条艺术海报。本教程制作的海报非常时尚、时尚,难度不大。建议像你这样的朋友一起学习这个教程。 我相信没有人会否认这条线是一个动态的元素,而这条线,这里的线,我们…

PHP生成数字信件的验证代码。

PHP生成数字信件的验证代码。

验证,数字,信件,代码,电脑软件,PHP生成数字信件的验证代码图片。 头('content-type:图像/格式); $图像=新建一个真彩色图像(100, 30); 颜色= imagecolorallocate美元(合图像,255, 255, 255); imagefill($ 20, 20美元的图像,颜色); 仅包含数字 ($ i = 0;$ …