我应该在对象原型中声明javascript对象方法吗?

我应该在对象原型中声明javascript对象方法吗?,javascript,methods,constructor,prototypal-inheritance,Javascript,Methods,Constructor,Prototypal Inheritance,我读过的所有内容似乎都倾向于在原型声明中声明对象构造函数的方法,而不是直接将方法放入初始构造函数中 function MyClass(name){ this.name = name; } MyClass.prototype.callMethod = function(){ console.log(this.name); }; 这会被推荐吗?如果是这样,那么将方法放入初始构造函数中有什么缺点呢 function MyClass(name){ this.name = name;

我读过的所有内容似乎都倾向于在原型声明中声明对象构造函数的方法,而不是直接将方法放入初始构造函数中

function MyClass(name){
  this.name = name;
}

MyClass.prototype.callMethod = function(){ 
  console.log(this.name);
  };
这会被推荐吗?如果是这样,那么将方法放入初始构造函数中有什么缺点呢

function MyClass(name){
  this.name = name;
  this.callMethod = function(){
    console.log(this.name);
    };
}
我假设这样一个简单的情况,无论哪种方式都不重要,但是对于较大的对象,在两种情况下声明方法的含义是什么?

来自,第34项:在原型上存储方法:

将方法存储在原型上可以使它们对所有实例都可用 不需要实现它们的函数的多个副本 或每个实例对象上的其他属性

  • 在实例对象上存储方法会创建实例的多个副本 函数,每个实例对象一个
  • 更喜欢在上存储方法 原型过度存储在实例对象上

非常感谢。这是一个比我预期得到的简单得多的答案,但现在对我来说,这非常有意义。我现在可能必须学习有效的Javascript。