Javascript this.method与prototype.method的区别是什么

Javascript this.method与prototype.method的区别是什么,javascript,Javascript,如本主题所述,当我们定义未来对象时(例如): 这两种方法都可用于新创建的对象。唯一的区别是“this”表达式将为每个实例创建此方法,并且使用“prototype”将在内存中共享(据我所知)。我面对过两种表达方式,有趣的是,第一种表达方式比第二种表达方式更受欢迎 我的问题是。。。JavaScript中的第一种或第二种正确方法是什么?(我知道这两种方法都有效,但是……什么是代码工程标准以及为什么)。正确的方法是第二种方法(您还需要原型做什么?) 第一种方法的优点是能够获得类似私有变量的东西:如果您在

如本主题所述,当我们定义未来对象时(例如):

这两种方法都可用于新创建的对象。唯一的区别是“this”表达式将为每个实例创建此方法,并且使用“prototype”将在内存中共享(据我所知)。我面对过两种表达方式,有趣的是,第一种表达方式比第二种表达方式更受欢迎


我的问题是。。。JavaScript中的第一种或第二种正确方法是什么?(我知道这两种方法都有效,但是……什么是代码工程标准以及为什么)。

正确的方法是第二种方法(您还需要原型做什么?)


第一种方法的优点是能够获得类似私有变量的东西:如果您在构造函数(
function Person
)中声明一个局部变量,那么您将能够在
sayName
方法中使用它,因为。在你的“课堂”之外无法访问该变量。

查看相关问题的侧边栏。
function Person(name) { 
    this.sayName = function() { 
        console.log(this.name);
    };
}

Person.prototype.sayName = function() { 
    console.log(this.name);
};