【发布时间】:2016-01-06 01:28:28
【问题描述】:
我是工作中的一个小型研究小组的一员,该小组试图更好地掌握 JavaScript 的成功之处。在我们最近关于对象的讨论中,我们了解到每次实例化对象时都会重新创建对象的公共方法,而分配给对象原型的方法只创建一次并由所有实例继承。据我了解,公共方法和分配给原型的方法都是可公开访问的。
那么,我的问题是,如果添加到原型显然更有效,为什么还要创建公共方法呢?公共方法提供了原型没有的什么好处?
【问题讨论】:
-
向对象添加原型会为要添加的同一类的其他对象(在本例中为函数)创建相同的方法。例如,如果我有
var name = new Student()并且我添加了一个原型来命名它,var name2 = new Student()也可以访问它 -
@AkshayKhandelwal 假设 OP 意味着在
Student的构造函数中执行this.GetName = function() { ... },您也可以从两者中访问它,但它是“每次都重新创建”。 -
@Pablo 不。我不同意。这不是重复的。这绝对是有道理的,因为他指出的区别是再次创建公共方法。
-
@AkshayKhandelwal 他指出,每次实例化新对象时都会重新创建公共方法。问题的最后两行是这里的关键
标签: javascript object prototype public-method