为了账号安全,请及时绑定邮箱和手机立即绑定

关于javascript设计模式里构造器模式的问题

关于javascript设计模式里构造器模式的问题

明月笑刀无情 2018-10-16 13:18:32
看到这里一篇文章《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 方法。

这么说你理解了吗?


查看完整回答
反对 回复 2018-11-15
  • 1 回答
  • 0 关注
  • 462 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信