私はいくつかの Node.js を実行しており、クロージャー表現を使用してオブジェクトを作成したいと考えています。このような単純なものが機能していないため、何かが足りないと思います:
var Room = function(foo) {
this.name = foo;
this.users= [];
return {
getName : function() {
return this.name;
}
}
}
var room = new Room("foo");
console.log(room.getName());
私もパラメータなしで試しました..それでも動作しません。
var Room = function() {
this.name = "foo";
this.users= [];
return {
getName : function() {
return this.name;
}
}
}
var room = new Room();
console.log(room.getName());
ただし、次のようなものが機能します。
var Room = function(foo) {
this.name = foo;
this.users= [];
}
var room = new Room("foo");
console.log(room.name);
なぜこれが機能しないのか理解できません。
--編集済み
Amadan のおかげで、正しい方法を見つけました。
var Room = function() {
var name = "foo";
var users= [];
return {
getName : function() {
return name;
}
}
}
var room = new Room();
console.log(room.getName());
このようにして、「名前」と「ユーザー」がカプセル化されます。