javascript - 声明构造函数的优点/缺点

标签 javascript

我对 JavaScript 中的原型(prototype)设计和构造函数很陌生。我看到有人这样声明构造函数:

var Person = (function(){
    function Person(name, age){
        this.name = name;
        this.age = age;
    }

    Person.prototype.setName = function(name){ this.name = name; }
    Person.prototype.setAge = function(age){ this.age = age }

    return Person;
}());

这是正确的做法吗?

最佳答案

是的,这是正确的形式,但不是唯一的形式。这相当于:

function Person(name, age){
    this.name = name;
    this.age = age;
}

Person.prototype.setName = function(name){ this.name = name; }
Person.prototype.setAge = function(age){ this.age = age }

您提供的代码将类声明包装在一个命名空间中,这是一种很好的做法。

关于javascript - 声明构造函数的优点/缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456598/

相关文章:

javascript - 以编程方式单击输入元素

Javascript:将CSS属性添加到一个div中,当它里面没有某个其他div时

javascript - Fabric.js 对象在选择后跳到底部 - 我该如何防止它?

javascript - 通过创建回调默认值参数使局部变量可访问

javascript - 为什么我无法在 Windows 8 JavaScript 应用程序中通过此访问变量

javascript - 为什么 "\n"在 Javascript 中是一个数字 "NaN"

javascript - 使用 "event' s"输出作为变量

javascript - 类型错误 : opendirSync is not a function

javascript - 如何制作一个干净的模板并将多个项目传递给它?

javascript - 限制 JQuery UI 对话框小部件的大小?