2

与主题一样,当我们定义未来对象时(例如):

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

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

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

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

4

1 回答 1

1

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

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

于 2013-08-21T08:18:16.653 回答