javascript - JavaScript/Node 中的数据模型定义标准

标签 javascript node.js data-objects

我最近开始使用 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/

相关文章:

javascript - 检查 Javascript 数组中是否存在属性值为 'x' 的对象

javascript - 如何使用回调更改字形的颜色?

Node.js/Express 响应事件

javascript - 如何在 Angular 中显示/隐藏按钮

node.js - 异步 - 等待 NodeJS 无法与 Mongoose 一起工作

javascript - Vue.js Electron : Synchronize variables between backend and frontend

model-view-controller - 如何定义业务模型和数据模型之间的区别?

ios - 如何使用 Swift 将 Firebase 3 中的不同数据对象相互关联?

ios - 处理 UITableViewCell 中的数据对象

javascript - 添加全部按钮不会使选择删除验证,就像选择了某些内容一样