我試圖讓一個對象是私人的,但不知道如何做到這一點。正如你所看到的名稱變量是私有的,我不能編輯它,但是當涉及到我返回的對象時,我可以編輯它。不過,我不希望這是可能的。 在JavaScript中我很新的面向對象和私有方法,所以有人可以告訴我什麼是對的和在這裏。 :)我該如何解決這個問題? 謝謝!爲什麼我的對象不是私人的,當我的變量是?
var User = function() {
var name = 'bob';
this.getName = function() {
return name;
}
var otherInfo = {
age: 20,
human: true,
}
this.getOther = function() {
return otherInfo;
}
}
var person = new User();
var name = person.getName();
name = 'jenny';
console.log(person.getName()); // bob
var other = person.getOther();
other.age = 'wtf?';
console.log(person.getOther()); // { age: 'wtf?', human: true }
如果您不想更改'person.getOther()'的返回值來更改'otherInfo'的值,那麼您需要返回它的一個副本。 – forgivenson
我該怎麼做? –
http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object – Jonathan