数码资讯
Javascript继承机制示例的详细说明
本文给出了Javascript继承机制的一个示例,供大家参考,具体分析如下: 继承Javascript初学者的概念是一般人很难理解Javascript语言,它不是子类和类 我花了很多时间学习这一部分,做了很多笔记,但都属于强烈的记忆,不能从根本上理解。 1。如何创建类 假设有类称为人,如下所示: 复
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文给出了Javascript继承机制的一个示例,供大家参考,具体分析如下:
继承Javascript初学者的概念是一般人很难理解Javascript语言,它不是子类和类
我花了很多时间学习这一部分,做了很多笔记,但都属于强烈的记忆,不能从根本上理解。
1。如何创建类
假设有类称为人,如下所示:
复制代码代码如下:var = =函数(名称,年龄){
this.name =名称;
this.age =年龄;
}
person.prototype.getname =函数(){
返回this.name;
}
以上:人和地球上所有的人,每个人都有两个基本属性:姓名和年龄;现在我们要实施一个班的学生,然后我们知道;学生是一个人,而学生也有姓名和年龄属性;现在的问题是如何把它变成一种关系呢
首先,看看如何在纯面向对象的语言(例如:actionscrpt3)做
将代码复制如下:类学生扩展个人{ };/很简单,一行代码;相当于一个词——扩展
两。我们怎样才能把它变成js
在解释js继承机制的实现之前,首先要了解js的原型链。
复制代码代码如下:var人=新的人('poised-flw ',21);
(人。getName); / / 将其
它是如何在上述getName()方法进行首先,我们会发现是否有getName方法()在人的功能,没有找到,然后去Person.prototype找出来,然后调用它,不是吗继续沿着相同的方式往下看原型,直到找到一条路或到达原型链的顶端为止!
例如,现在有一个叫做狗的构造函数,它代表了一个狗对象的原型。
复制代码代码如下:函数狗(名称){
this.name =名称;
}
为这个构造函数使用新的,生成一个对象的实例。
复制代码如下:var DOGA =新狗('older);
警报(DOGA。名称); / /蛋
注意构造函数中的这个关键字,它表示新创建的实例对象。
三,新算子的缺点
一个缺点是用构造函数生成实例对象,也就是说不能共享属性和方法。
例如,在狗对象的构造函数中,设置实例对象的公共属性类。
复制代码代码如下:函数狗(名称){
this.name =名称;
this.species =狗;
}
然后,生成两个实例对象:
复制代码如下:var DOGA =新狗('older);
无功dogb =新狗(20分);
这两个对象的物种属性是独立的,其中一个不会影响到另一个对象。
复制代码代码如下:doga.species =猫家族;
警报(dogb。种); / / 犬
每个实例对象都有一个自己的属性和方法的副本,这不仅不能进行数据共享,而且浪费资源。
继承思想:继承机制是通过JS独特的原型链实现的!
四。基于原型链的继承
1。直接继承的实现
复制代码代码如下:var学生=函数(名称,年龄,SID){
person.call(这名字,年龄);
this.sid = Sid;
}
students.prototype =新的(人); / /把人的继承机制的实现原型链上的学生
students.prototype.constructor =学生;
students.prototype.getresults =函数(){
获得学生成绩
}
不降低students.prototype.constructor =学生线!在定义构造函数时,它的默认原型是对象实例,原型的构造函数属性自动设置为函数本身!!!如果你手动设置原型到另一个对象,那么新的对象将不自然的原始对象构造函数的值,所以它需要重置其构造函数等属性:
复制代码如下:var test =函数(){()
this.time =现在;
}
console.log(试验样机); / /对象是一个空的对象
console.log(试验样机。构造函数); / /功能({这个时间)=现在;},和本身的功能
如果手动将原型属性更改为测试
test.prototype = { {
SomeFunc:函数(){
console.log('Hello World!;
}
};
console.log(试验样机。构造函数); / /函数对象({ } } {本地代码)
然后,您会发现,当它手动更改需要将其转换为构造函数的原型属性时,完全错误;
上面的测试知道构造函数值是怎么改变的。
2。封装继承函数扩展
复制代码代码如下:功能的延伸(子类,父类){
Var(f =函数){ };
f.prototype = superclass.prototype;
subclass.prototype =新的f();
subclass.prototype.constructor =子类;
}
事实上,这个函数的功能只是上面的继承过程的包,不同的:
它继承了父类的属性和原型只有不继承属性在父类的构造函数;
这样做的好处是降低了到一个新构造函数的成本!
以下的问题,当然,是不可能允许子类继承父类的所有属性,通过这个函数。
改进uff1a
将代码复制如下:继续在学生构造函数中添加一行代码:
person.call(这名字,年龄);
五、总结
通过使用JS的原型链原理,我们可以很容易地实现js的继承机制,虽然不是很严格,但我的目标是实现:尽可能频繁地重复代码。
希望本文能对大家的javascript程序设计有所帮助。
继承Javascript初学者的概念是一般人很难理解Javascript语言,它不是子类和类
我花了很多时间学习这一部分,做了很多笔记,但都属于强烈的记忆,不能从根本上理解。
1。如何创建类
假设有类称为人,如下所示:
复制代码代码如下:var = =函数(名称,年龄){
this.name =名称;
this.age =年龄;
}
person.prototype.getname =函数(){
返回this.name;
}
以上:人和地球上所有的人,每个人都有两个基本属性:姓名和年龄;现在我们要实施一个班的学生,然后我们知道;学生是一个人,而学生也有姓名和年龄属性;现在的问题是如何把它变成一种关系呢
首先,看看如何在纯面向对象的语言(例如:actionscrpt3)做
将代码复制如下:类学生扩展个人{ };/很简单,一行代码;相当于一个词——扩展
两。我们怎样才能把它变成js
在解释js继承机制的实现之前,首先要了解js的原型链。
复制代码代码如下:var人=新的人('poised-flw ',21);
(人。getName); / / 将其
它是如何在上述getName()方法进行首先,我们会发现是否有getName方法()在人的功能,没有找到,然后去Person.prototype找出来,然后调用它,不是吗继续沿着相同的方式往下看原型,直到找到一条路或到达原型链的顶端为止!
例如,现在有一个叫做狗的构造函数,它代表了一个狗对象的原型。
复制代码代码如下:函数狗(名称){
this.name =名称;
}
为这个构造函数使用新的,生成一个对象的实例。
复制代码如下:var DOGA =新狗('older);
警报(DOGA。名称); / /蛋
注意构造函数中的这个关键字,它表示新创建的实例对象。
三,新算子的缺点
一个缺点是用构造函数生成实例对象,也就是说不能共享属性和方法。
例如,在狗对象的构造函数中,设置实例对象的公共属性类。
复制代码代码如下:函数狗(名称){
this.name =名称;
this.species =狗;
}
然后,生成两个实例对象:
复制代码如下:var DOGA =新狗('older);
无功dogb =新狗(20分);
这两个对象的物种属性是独立的,其中一个不会影响到另一个对象。
复制代码代码如下:doga.species =猫家族;
警报(dogb。种); / / 犬
每个实例对象都有一个自己的属性和方法的副本,这不仅不能进行数据共享,而且浪费资源。
继承思想:继承机制是通过JS独特的原型链实现的!
四。基于原型链的继承
1。直接继承的实现
复制代码代码如下:var学生=函数(名称,年龄,SID){
person.call(这名字,年龄);
this.sid = Sid;
}
students.prototype =新的(人); / /把人的继承机制的实现原型链上的学生
students.prototype.constructor =学生;
students.prototype.getresults =函数(){
获得学生成绩
}
不降低students.prototype.constructor =学生线!在定义构造函数时,它的默认原型是对象实例,原型的构造函数属性自动设置为函数本身!!!如果你手动设置原型到另一个对象,那么新的对象将不自然的原始对象构造函数的值,所以它需要重置其构造函数等属性:
复制代码如下:var test =函数(){()
this.time =现在;
}
console.log(试验样机); / /对象是一个空的对象
console.log(试验样机。构造函数); / /功能({这个时间)=现在;},和本身的功能
如果手动将原型属性更改为测试
test.prototype = { {
SomeFunc:函数(){
console.log('Hello World!;
}
};
console.log(试验样机。构造函数); / /函数对象({ } } {本地代码)
然后,您会发现,当它手动更改需要将其转换为构造函数的原型属性时,完全错误;
上面的测试知道构造函数值是怎么改变的。
2。封装继承函数扩展
复制代码代码如下:功能的延伸(子类,父类){
Var(f =函数){ };
f.prototype = superclass.prototype;
subclass.prototype =新的f();
subclass.prototype.constructor =子类;
}
事实上,这个函数的功能只是上面的继承过程的包,不同的:
它继承了父类的属性和原型只有不继承属性在父类的构造函数;
这样做的好处是降低了到一个新构造函数的成本!
以下的问题,当然,是不可能允许子类继承父类的所有属性,通过这个函数。
改进uff1a
将代码复制如下:继续在学生构造函数中添加一行代码:
person.call(这名字,年龄);
五、总结
通过使用JS的原型链原理,我们可以很容易地实现js的继承机制,虽然不是很严格,但我的目标是实现:尽可能频繁地重复代码。
希望本文能对大家的javascript程序设计有所帮助。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。