3

我最近开始使用 JavaScript(服务器端)和 Node.js 进行编程。我来自 Java 背景,那里有一个关于如何定义数据对象的具体标准,即 Java Bean。我们在 JavaScript/Node 中是否有关于我们如何定义数据对象(类似于 Java Beans)的任何此类标准?

我在很多地方研究过,找不到任何标准。我看过以下样式,但不确定哪种更好或推荐:

//bean1.js
module.exports = function() {
var obj = {};
obj.name = '';
obj.department = '';

return obj;

}

//bean2.js
module.exports = function() {

this.name = '';
this.department = '';

return this;

}

//bean3.js
module.exports = function(param) {
var obj = {};

if(param === undefined) {
return obj;
}

obj.name = param.name;
obj.department = param.department;

return obj;

}

//bean4.js
module.exports = {
    name : '';
    department : '';
}
4

1 回答 1

2

因此,基于来自 Node/JavaScript 社区的一些人的更多研究、研究和回答,我认为我对如何创建数据对象以及上述 4 种创建样式(参见上述问题中的代码片段)之间的差异有了更好的了解对象。

根据答案,JavaScript 在创建数据对象方面没有任何标准(与 Java Bean 规范相比)。它更像是一种自由风格,取决于您需要创建哪种对象的用例,即单例或更多动态对象(多个新实例)。

因此,如果您需要一个简单的对象而不创建该对象的新实例,那么 beanjs.4 是创建数据对象的最佳示例。这很简单,但限制是创建的对象是单例的,你不能从这个对象定义中创建新的实例。

//bean4.js
module.exports = {
    name : '';
    department : '';
}

如果您的用例是创建多个新实例,则使用可以返回对象的函数。在上面的问题中,bean1.js、bean2.js 和 bean3.js 都在做同样的事情,任何一个都可以用来创建新对象。使用函数返回对象被称为“生成器”或“工厂”或“伪构造器”。

这是一个使用函数返回对象的示例(工厂模式):

function Person(firstName, lastName) {
    var person = {};

    person.firstName = firstName;
    person.lastName = lastName;

    return person;

}

var person = new Person('foo', 'bar'); //create object from Person

要阅读有关此问题的详细讨论,请访问此链接:https ://groups.google.com/forum/#!topic/nodejs/Drezeitaxbc

于 2015-02-01T08:49:34.380 回答