1. 程式人生 > >一、理解對象

一、理解對象

for delet 對象 conf -i 什麽是對象 ava efi style

1 什麽是對象?

  無需屬性的集合,其屬性可以包含基本值、對象或者函數。

  可以把對象想象為散列表:無非就是一組 名-值對,其值是數據或函數。

1.1 屬性類型

  ECMAScript中有兩種屬性:數據屬性訪問器屬性

  數據屬性:

  • [[ Configurable ]]:能否通過delete刪除屬性重新定義屬性,能否修改屬性特性,或者把屬性修改為訪問器屬性。默認為true
  • [[ Ebumberle ]]:能否通過for-in循環返回屬性,默認為true
  • [[ Writable ]]:能否改寫屬性值,默認為true
  • [[ Value ]]:包含這個屬性的數據值,默認為tundefined

  要修改屬性默認特性,要用 Object,defineProperty() 方法。這個方法接受三個參數:屬性所在的對象、屬性的名字、一個描述符(descriptor)對象。 

var person ={};
Object.defineProterty(person,"name",{
   configurable:false,
   value:"Nick"  
});
alert(person.name)   //Nick
person.name="Tim";
alert(preson.name);  //Nick

  非嚴格模式下賦值將被忽略,嚴格模式下賦值操作將會拋出錯誤。

  一旦

把configurable設置為false後,就再不能把它變回可配置了,即再設置為true後,會拋錯誤

  在調用Object,defineProperty() 方法時,如果不指定,Configurable 、 Ebumberle、Writable 會默認為false.

一、理解對象