1 什麼是物件?
無需屬性的集合,其屬性可以包含基本值、物件或者函式。
可以把物件想象為雜湊表:無非就是一組名-值對,其值是資料或函式。
1.1 屬性型別
ecmascript中有兩種屬性:資料屬性和訪問器屬性
資料屬性:
要修改屬性預設特性,要用object,defineproperty()方法。這個方法接受三個引數:屬性所在的物件、屬性的名字、乙個描述符(descriptor)物件。
var person ={};object.defineproterty(person,"name",);
alert(person.name) //nick
person.name="tim";
alert(preson.name); //nick
非嚴格模式下賦值將被忽略,嚴格模式下賦值操作將會丟擲錯誤。
一旦把configurable設定為false後,就再不能把它變回可配置了,即再設定為true後,會拋錯誤
在呼叫object,defineproperty()方法時,如果不指定,configurable 、ebumberle、writable會預設為false.
1.2. 訪問器屬性
訪問器屬性不包含資料值,二是包含一對兒getter和setter函式(都不是必需的)。
在讀取訪問器屬性時,會呼叫 getter 函式,這個函式負責返回有效函式值;
在寫入訪問器函式時,會呼叫setter 函式並傳入新值,這個函式負責如何處理資料。
訪問器的四個屬性:
訪問器屬性不能直接定義,必須使用object,defineproperty()定義。
1.3 定義多個屬性
為物件定義多個屬性時用object,defineproperties()方法。接受兩個物件:要新增或修改其屬性的物件、要新增或修改的屬性。
var book ={};object.defineproperties(book,,
edition:,
year:
}, set:function(newvalue)
}})
1.3 讀取屬性的特性
object.getownpropertydescriptor()方法可以獲得給定屬性的描述符。
根據上面的例子
var descriptor = object.getownpropertydescriptor(book,"_year");alert(descriptor.value); //2004
alert(descriptor.configurable); //false
alert(typeof descriptor.get) //undefined
var descriptor = object.getownpropertydescriptor(book,"year");alert(descriptor.value); //undefined
alert(descriptor.configurable); //false
alert(typeof descriptor.get) //function
php物件導向理解(一)
物件導向的理解 物件導向的概念 物件導向程式設計是一種計算機程式設計架構,oop的一條基本原則是電腦程式是由單個能夠起到子程式作用的單元或物件組合而成,oop達到了軟體工程的三個目標 重用性 靈活性和擴充套件性。為了實現整體運算,每個物件都能夠接收資訊 處理資料和向其它物件傳送資訊。物件導向一直是軟...
如何理解物件導向 一
為了更好的理解什麼是物件導向,物件導向和面向過程有什麼區別,我舉乙個生活中的小例子來對比一下兩者的區別 開車去超市。面向過程 面向過程的話可以理解為我們現在要開一輛平平無奇的車去超市。我們得掛檔 鬆手剎 點火 一頓猛如虎的操作之後到達目的地。物件導向 物件導向的話就可以理解為我們的車是無人駕駛汽車,...
php物件導向理解 一
常用的繼承過程,以及對public private protected修飾符的理解 父類 person父類 class person 共有例項方法,可以被類的裡面和外面訪問,並且可以子類繼承重寫 public function personinfo 私有例項方法,可以被類的裡面訪問,但不能被類的外面...