看到这里一篇文章《JavaScript设计模式一:工厂模式和构造器模式》https://segmentfault.com/a/11...关于这篇文章里的构造器模式。最后有一段:带原型的Constructor(构造器) <script type="text/javascript"> function Car(model,year,miles) { this.model = model;
this.year = year; this.miles = miles;
} /** 关于下面这段代码 **/
Car.prototype.run = function () { return this.model + " has done " + this.miles + " miles ";
}; /** 关于上面这段代码 **/
var Benz = new Car('S350',2010,20000); var Ford = new Car('Ford',2012,12000);
console.log(Benz.run());//"S350 has done 20000 miles "
console.log(Ford.run()); </script>
不用prototyp,把this.run = function(){...}当成方法写在构造函数里也可以正常运行,两者有什么不一样?
和单例模式有关吗?还是可以避免重复调用的资源浪费?
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
如果你只有 Car
这一个类用到 run
方法,那么两种写法在性能上是没有区别的。
但是如果你有 Car1
到 Car10
十个类:
如果你写在类内部,那么你的内存里将有10个 run
方法。
如果你使用prototyp,那么你的内存里将有1个 run
方法。
这么说你理解了吗?
添加回答
举报
0/150
提交
取消