物件屬性的特性var obj1 = new
object();
object.defineproperty(obj1,"y",);
分析:首先 第一行**var obj1 = new
object(),表示建立乙個空物件,相當於
var obj1 =;
{} 叫做 物件字面量
前提是new object()中沒有傳入引數,才與{}一樣
object.defineproperty(obj, prop, descriptor)方法會直接在乙個物件上定義乙個新屬性,或者修改乙個物件的現有屬性, 並返回這個物件。
在這兒,obj1 要定義屬性的物件,要修改的屬性名稱 y , descriptor 將被定義或修改的屬性描述符(三個,預設都是false)。
其中 :三個描述分別是
writeable:表示是否能修改屬性的值
enumerable:表示能否通過for-
in迴圈返回屬性,代表屬性是否可列舉
configurable:是否能通過delete刪除屬性從而重新定義屬性,能否修改屬性的三個特性,或者能否把屬性修改為訪問器屬性,直接在物件上定義屬性。
檢視找乙個不存在的屬性,可通過get(儲存器屬性)
比如這裡通過字面量形式建立person物件,有名字,性別屬性
var person =,
set age( val ) ;
console.log( person.username); // king
console.log( person.age) ; 12
當執行到console(person.age)**行時,person.age 試圖找到不存在的 age 屬性,如果想要得到age屬性,在person物件裡,前面寫上get關鍵字 ,即可得到age的返回值。 所以,當想要得到age的值的時候,會自動呼叫寫好的 get age(){}方法
如果想要設定age屬性的值:
person.age = 13;
console.log( person.age); //輸出 :不能設定13
defineproperty方式建立屬性並新增描述
var obj={}
object.definedproperty(obj,
"x",
});defineproperties 方式建立多個屬性並新增描述
通過字面量以及defineproperty的方法設定屬性只能乙個乙個設定,其實可以用object的property屬性設定多個
var person = {};
object.defineproperties(person,, //注意 逗號
age :
});console.log(person.user);//king
console.log(person['age']); 訪問屬性,可直接寫名字,也可以加上,當名字有破折號,就必須加上了,比如person[first-name]
console.log( object.getownpropertydescriptor(person,"user") );
得到person物件的user屬性的描述,返回結果是:
object
console.log(object.getownpropertydescriptor(person,"age"));
得到person物件的age屬性的描述,返回:
object
定義age屬性的時候,省略了enumeralb 和configurable的屬性描述,所以返回時可以看到,預設是false
如果在person物件裡面加上:
person.addr = "北京 「;
console.log(object.getownpropertydescriptor(person,"addr"
));返回結果三個屬性描述都是true;
前端複習 物件的可列舉屬性
初學時,並不是很注意這些細節的東西,但是程式設計師寫 的時候,怎麼會容忍胡而麻三的記憶.1 for in 語句的複習 問題引出 var function colored colored prototype var obj new colored for var prop in obj output ...
js物件可擴充套件性和屬性的四個特性(下)
1 用指定物件作為原型建立物件object.create 說明 const log console.log 返回資料資料的描述 var aa object.create log aa log object.getownpropertydescriptor aa,y 2 刪除物件屬性delete說明 ...
ES6 物件的擴充套件 屬性的可列舉性和遍歷
可列舉 物件的每乙個屬性都有乙個描述物件,用來控制該屬性的行為。object.getownpropertydescriptor 方法可以獲取該屬性的描述物件。let obj object.getownpropertydescriptor obj,foo 描述物件的 enumerable 屬性,稱為 ...