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');
}
}
我正在學習如何在空中接力JS的作品,現在我有點困惑私有方法和字段。我想在個人版塊中添加一些私人成員,例如「personCount」或「lastAddedPerson」。如果我加入他們是這樣的:在人部分的開頭
Person:
{
personCount: 0,
lastAddedPerson: '',
...
}
,字段是公開的,可以用Systemane.Person.Field叫....我怎麼可以設置爲私有?和一個方法一樣。
thx爲您的幫助。
您正在使用對象字面值,這不是真正在js中執行OOP的方法。嘗試使用函數/閉包,這樣你可以模仿公共,私人,繼承等... – 2013-03-19 20:35:59
在JS對象中沒有「私人領域」,所有的屬性都是公共的。如果你真的需要隱私,你必須使用閉包(通常是構造函數之一)。看看[這個問題](http://stackoverflow.com/q/13418669/1048572) – Bergi 2013-03-19 20:36:12