【发布时间】:2013-03-08 17:40:44
【问题描述】:
Systemname =
{
Question :
{
send: function()
{
console.log("send");
},
read: function()
{
console.log("read");
},
delete: function()
{
console.log("delete");
}
},
Answer :
{
send: function()
{
console.log("Answer sent");
}
},
Person :
{
foo: 'foo',
bar: 'bar',
add: function(name)
{
console.log('person "' + name + '" added');
},
remove: function(id)
{
console.log('person with id "' + id + '" removed');
}
}
}
我正在学习 oop 在 js 中的工作原理,现在我对私有方法和字段有点困惑。我想在人员部分有一些私人成员,例如“personCount”或“lastAddedPerson”。如果我像这样添加它们:
Person:
{
personCount: 0,
lastAddedPerson: '',
...
}
在人员部分的开头,这些字段是公共的,可以使用 Systemane.Person.Field.... 我如何将它们设置为私有?方法也一样。
感谢您的帮助。
【问题讨论】:
-
您正在使用对象文字,这并不是在 js 中执行 OOP 的真正方法。尝试使用函数/闭包,这样您就可以模仿公共、私有、继承等......
-
JS 对象中没有“私有字段”,所有属性都是公开的。如果你真的需要隐私,你必须使用闭包(通常是构造函数之一)。看看this question
标签: javascript oop class