寫到這代碼只用於試驗目的。在這裏,我用Object.defineProperty創建一個名爲'fullName'
性質和使用set我定義的另一個屬性叫middleName
人。我不得不通過fullName
。無論他們有枚舉財產TRUE
傳遞價值middleName
,使for..in
迴路可以訪問它。但是後來我想從刪除中間名屬性object.But它仍然是there.Why它仍然存在??爲什麼這個屬性不希望被deleated
(function(){
person = {
firstName: 'will',
lastName: 'Smith'
};
Object.defineProperty(person,'fullName',{
set:function(mid){
Object.defineProperty(person,'middleName',{
value : mid,
enumerable: true,
writeable : false
});
},
get:function(){
document.write(this.middleName);
},
enumerable:true
});
person.fullName='lol';
person.fullName; \t
document.write(Object.getOwnPropertyNames(person)+'</br>'); \t
for(key in person){
document.write(key+'</br>');
} \t \t
document.write('\n'); \t \t
delete (person.middleName);
document.write(person.middleName+'</br>');
for(key in person){
document.write(key+'</br>');
}
})()
'delete'操作者意圖與**變量**一起使用。 'person.middleName +「」'你試圖刪除是** **表達式是 – hindmost 2014-10-11 11:13:38
是當我在編輯文章。它不包括在實際code.I打錯了已編輯post.check它,請 – 2014-10-11 11:15:35
@天誅地滅,我想你指的是[*刪除*運算符(http://ecma-international.org/ecma-262/5.1/#sec-11.4.1)可以刪除對象的屬性,不變量(參見[ MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete))。 – RobG 2014-10-11 11:25:19