小司機開車,直接擼代碼:
1、對象擴展性修改,如果對象不能被擴展,則其後的擴展操作不佔用內存;
對象屬性不想被其他人修改,設置其擴展性precentExtensions;
可通過Object.isExtensible(obj)判斷對象是否可擴展:
alert("對象是否可擴展:"+Object.isExtensible(aaa));//true
Object.preventExtensions(aaa);
aaa.name2='wss';
alert("輸出"+aaa.name2);
alert("對象是否可擴展:"+Object.isExtensible(aaa));//false
2、對象屬性的封裝
JS中所有對象都有四個特性,1 value 2 writable 3configurable 4 enurable
如果想要對單個屬性,進行個人的操作,可以使用defineProperty.
注意其語法:
Object.defineProperty(obj, prop, descriptor)方法接收三個參數:需要添加或修改屬性的對象,屬性名稱,屬性描述options。
其中descriptor多個定義以“,”相隔,字尾不要加“;”
擼代碼:
Object.defineProperty(o,'name',{
value:'nick',
writable:false <!--修飾中不要加分號-->
});
o.name='nicknailo';
Object.defineProperty(o,'name',{
configurable:false <!--false後,屬性不可被刪除-->
});
delete o.name;//
alert(o.name);//nick
3、最後說一種,函數化對象。