数码资讯
简单谈谈Javascript代码重用模式
这是代码重用的一个著名的原则,提出:优先考虑对象的组合,而不是类继承。在Javascript,没有阶级概念,所以代码重用是不受限制的类继承。有许多方法和构造函数来创建对象,在Javascript中,使用新的创造对象和修改对象的动态性,有许多方法来利用Javascript的非类的继承,这是所谓的现代传
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
这是代码重用的一个著名的原则,提出:优先考虑对象的组合,而不是类继承。在Javascript,没有阶级概念,所以代码重用是不受限制的类继承。有许多方法和构造函数来创建对象,在Javascript中,使用新的创造对象和修改对象的动态性,有许多方法来利用Javascript的非类的继承,这是所谓的现代传承模式。例如,我们需要将其他对象组合成需要与技术、借用和多路复用方法混合的对象。
类继承模式-默认模式
两个构造函数父和子的示例:
复制代码代码如下所示:
函数父(名称){
this.name =名字| | 亚当;
}
parent.prototype.say = { {
返回this.name;
};
函数子(名称){
}
继承(子、父);
下面是可重用继承函数继承()的实现之一:
复制代码代码如下所示:
函数继承(c,p){
c.prototype =新的P();
}
原型属性应该指向一个对象而不是一个函数,因此他必须指向父构造函数创建的实例而不是构造函数本身。
在此之后,当创建子对象时,该函数将通过原型从父实例获得:
复制代码代码如下所示:
新孩子();
(孩子。说);亚当
继承后调用原型链:
进一步添加孩子的属性:
复制代码代码如下所示:
新孩子();
kid.name = 帕特里克;
(孩子。说);帕特里克
原型链的变化:
您可以在对象属性中找到名称,并且不必再次查找原型链。
使用上述模型的缺点之一是它同时继承了两个对象的属性,也就是说,属性添加到了这个属性和原型属性中。
另一个缺点是,继承遗产()不支持参数传递给subconstructor,如:
复制代码代码如下所示:
var =新子(塞思);
(说); / /亚当
这个结果是不期望的,虽然子构造函数可以将参数传递给父构造函数,但是每次我们需要一个子对象时,我们必须重新执行这个继承机制,而且效率很低,因为它最终会重新创建父对象。
本文首先介绍了这一点,并将继续更新Javascript代码重用模式的剩余模式。
类继承模式-默认模式
两个构造函数父和子的示例:
复制代码代码如下所示:
函数父(名称){
this.name =名字| | 亚当;
}
parent.prototype.say = { {
返回this.name;
};
函数子(名称){
}
继承(子、父);
下面是可重用继承函数继承()的实现之一:
复制代码代码如下所示:
函数继承(c,p){
c.prototype =新的P();
}
原型属性应该指向一个对象而不是一个函数,因此他必须指向父构造函数创建的实例而不是构造函数本身。
在此之后,当创建子对象时,该函数将通过原型从父实例获得:
复制代码代码如下所示:
新孩子();
(孩子。说);亚当
继承后调用原型链:
进一步添加孩子的属性:
复制代码代码如下所示:
新孩子();
kid.name = 帕特里克;
(孩子。说);帕特里克
原型链的变化:
您可以在对象属性中找到名称,并且不必再次查找原型链。
使用上述模型的缺点之一是它同时继承了两个对象的属性,也就是说,属性添加到了这个属性和原型属性中。
另一个缺点是,继承遗产()不支持参数传递给subconstructor,如:
复制代码代码如下所示:
var =新子(塞思);
(说); / /亚当
这个结果是不期望的,虽然子构造函数可以将参数传递给父构造函数,但是每次我们需要一个子对象时,我们必须重新执行这个继承机制,而且效率很低,因为它最终会重新创建父对象。
本文首先介绍了这一点,并将继续更新Javascript代码重用模式的剩余模式。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。