3

最近、JavaScript (サーバー側) と Node.js でプログラミングを始めました。私は、Java Bean であるデータ オブジェクトを定義する方法に関する具体的な標準がある Java のバックグラウンドから来ました。データ オブジェクト (Java Beans と同様) を定義する方法について、JavaScript/Node にそのような標準はありますか?

私は多くの場所で調査しましたが、基準を見つけることができませんでした。次のスタイルを見てきましたが、どちらが優れているか、または推奨されているかわかりません。

//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 がデータ オブジェクトを作成するための最良の例です。これは簡単ですが、作成されるオブジェクトが 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

于 2015-02-01T08:49:34.380 に答える