我正在做一些 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());
这样“名称”和“用户”就被封装了。