所以我试图围绕创建对象的不同方式.
我开始使用Protoype模式来创建对象.
现在我在下面编写了两个函数,但我看不出两者之间的功能差异是什么?您何时使用构造函数模式以及何时使用Prototype模式?
构造函数模式
function Fruit(){}
Fruit.color = "Yellow",
Fruit.fruitName = "Banana",
Fruit.nativeTo = "SomeValue"
Run Code Online (Sandbox Code Playgroud)
原型模式
function Fruit(){}
Fruit.prototype.color = "Yellow",
Fruit.prototype.fruitName = "Banana",
Fruit.prototype.nativeTo = "SomeValue"
Run Code Online (Sandbox Code Playgroud)
Ste*_*how 15
组件的可重用性......
构造函数
当您创建新的构造函数时,您将创建一个新的实例,重要的是,对实例所做的任何更改都只会影响它们,而不会影响其他实例.
原型
当您使用原型创建新对象时,它将重用逻辑,对原型链的任何更改都将影响其他所有人.
这是一个很好的解释:Javascript原型和实例创建
何时使用每种模式都是基于需求 - 非常模糊的答案,但从来没有这种情况.
想想它们在整个JS中使用的对象,函数,数组,并且它们可以理解它们存在于原型链中,因为我们想要传播它们对它们的任何改变 - 侧面注释:这就是为什么我们永远不应该将它们改为它可以搞砸他们的行为.
这里有最好的解释:JavaScript构造函数,原型和new关键字
| 归档时间: |
|
| 查看次数: |
4267 次 |
| 最近记录: |