我最近开始使用 JavaScript(服务器端)和 Node.js 进行编程。我来自 Java 背景,那里有一个关于如何定义数据对象的具体标准,即 Java Bean。我们在 JavaScript/Node 中是否有关于我们如何定义数据对象(类似于 Java Bean)的任何此类标准?
查了很多地方都没有找到标准。我见过以下样式,但不确定哪个更好或推荐哪个:
//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 : '';
}
最佳答案
因此,基于来自 Node/JavaScript 社区的一些人的更多研究、研究和回答,我想我对如何创建数据对象以及上述 4 种样式之间的差异有了更清晰的了解(请参阅上面问题中的代码片段) 创建对象。
根据答案,JavaScript 没有任何关于创建数据对象的标准(与 Java Bean 规范相比)。它更像是一种自由风格,取决于您需要创建哪种对象的用例,即单例或更多动态对象(多个新实例)。
因此,如果您需要一个简单的对象而不创建该对象的新实例,那么 beanjs.4 是创建数据对象的最佳示例。这很简单,但限制是创建的对象是 Singleton,您不能从该对象定义创建新实例。
//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
关于javascript - JavaScript/Node 中的数据模型定义标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27585558/