淺談JS對象的屬性封裝性

小司機開車,直接擼代碼:

  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、最後說一種,函數化對象。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章