Javascript的继承(三)

首先,我们来看非主流继承一:示例继承法。

我也不说那么多废话。由于主流是继承的,所以不会频繁使用。由于没有共同的用途,只有一个因素用于特定的场合,示例继承方法主要用于继承核心对象,是目前解决核心对象继承的唯一方法。

核心对象的继承具有一定的价值。例如,错误对象,我们的公司可以自己实现一个错误类来简化未来的开发。此时,我将继承案例继承方法的错误。

代码如下:

复制代码代码如下所示:
功能extendingerror(MES)
{
var实例=新错误(MES);
实例。newerror =函数(){
警报(您的错误是;
}
返回实例;
}


在测试中:

复制代码代码如下所示:
var =新extendingerror(你数小于1 );
E.NewError();
警报(e.tostring());


结果是我们满意了:




好了,没有废话了,这是一种非主流的传承方式,基本上只为传承的核心对象,好好记住它!
接下来,看看非主流继承2:复制继承。

顾名思义,复制遗传复制通过复制对象的继承是什么。显然,这是该对象的属性和方法,并且记住,在Javascript中,是类实际上是一个哈希表如果你想不起来,回去回顾一下基础,我可能会在一段时间内写一篇关于Javascript对象的知识。
了解这一点很容易,直接查看代码:
首先,编写扩展方法:

复制代码代码如下所示:
函数。扩展名=函数(){
对于(VAR Pro在obj)
{
这实际上是属性和 / /父类方法完全复制
这个原型{亲} { } = obj亲;
}
}


好的,然后编写部分代码,看看如何使用它。

复制代码代码如下所示:
功能动物()
{ }
功能人()
{ }
人.延长(新动物())
{ }


一看,这种方法的缺点是显而易见的:
当对象的属性方法一个接一个地被复制时,它实际上被反射出来了,我没有说太多关于效率的损害。
像原型继承一样,父类对象必须被初始化,当继承关系被确定时,但是当参数不确定时,它不能被播放!

一般来说,这种方法一般不使用。

这里有一个共同点,混合遗传!
这是以两种主流的继承方式为基础的,与两种继承方式相比,两种继承方式的优劣是互补的,是好的,是混合在一起的。

复制代码代码如下所示:
功能人(姓名)
{
这个名字=名字;
这个sayname =函数(){
警报(我的名字是++名字);
}
}
功能女孩(姓名,年龄)
{
结构继承
这个,父亲=人;
This.father(人名);
删除this.father;
这个函数(=){
警报(我的名字是++;
}
}
原型继承
女孩,原型=新人();
好了,混合的两种方法,现在看,问题解决了吗
新女孩()
警报(G是人);
G.SayName();
G. Introduce();









测试通过!

这是一个比较完美的解决方案,但它增加了代码的复杂性,因此具体的方案取决于人们在实践中的选择。

Javascript就是这样继承的,欢迎其他人继续关注我的其他文章。