建立自定義物件最簡單的方式就是建立乙個object例項。然後新增方法和例項
var person = newobject()
person.name = "hi"person.sayname = function
()
}
為了實現js引擎。es定義了只有內部才用的特性(不能直接訪問)。描述了屬性
es有兩種屬性:資料屬性和訪問器屬性
資料屬性包含乙個資料值的位置/ 這個位置可以讀取和寫入值。資料屬性有四個描述其行為的特性
像前面那種直接在物件上定義屬性,它們的前三項特性都是true。最後一項被設定為指定的值。
var person =//這裡建立了乙個名為name的屬性,為它指定的值是「hi」,也就是說[[value]]特性將被設定為「hi」,而對這個值的任何修改都會反應在這個位置
要修改屬性的預設的特性。需要用到object.defineproperty()方法//同時也可以這樣建立乙個屬性
//作為建立乙個新的屬性,如果不特別指定。configurable,enumerable,writable都預設為false。
//當configurable設定為false的時候,就不能再變回來。只能修改writable屬性(當writable為true的時候)
//也就是說該屬性的這四個特性都不能被更改了(除了writable,但是當writable被設定為false後也不可以更改)
//當configurable設定為true的時候,其他屬性可以被任意修改
它接受三個引數(屬性所在的物件,屬性的名字,乙個描述符物件)。描述符物件的屬性必須是那四個。設定乙個或者多個值
可以修改對應的特性值。
var person ={}object.defineproperty(person, "name", )
alert(person.name)
//"hi"
person.name = "bye"alert(person.name)
//"hi"
訪問器屬性不包含資料值,但是包含一對getter和setter函式(不過他們不是必需的)
讀取訪問器屬性的時候,會呼叫getter函式,這個函式返回有效的值。
寫入訪問器屬性的時候,呼叫setter函式並傳入新值。這個函式決定處理資料。
訪問器屬性有如下四個特性
具體實現
作用:比如更新本物件的全部屬性
其實有些情況setter和getter很實用,比如在設定屬性的時候需要將屬性值做一些處理,當然這些處理可以在外部定義函式實現,也可以直接處理之後賦值,但是,使用setter和getter更加符合程式設計的思維,賦值或者獲取屬性值是不需要進行額外的操作,因為操作已經封裝了,並且對外部來說是透明的。
物件導向三大特徵 Part 2
子類可以通過繼承獲取到父類中非私有化方法,但是父類的方法,不一定滿足子類的情況 不可能通過重新定義類似的方法名,完成子類特定的符合要求的方法重寫之後,在沒有增加新的方法名的情況下,重寫方法體內容,讓方法滿足子類,降低了開發壓力,提高了效率。override 要求重寫方法的和父類中的方法,宣告完全一致...
C 類和物件的學習 part2 物件特性
完成對物件的初始化和清理。編譯器強制,自動呼叫。建構函式語法 類名 析構函式語法 類名 分類方式 三種呼叫方式 具體程式如下 arrayone.cpp small arrays of integers include using namespace std 建構函式的分類和呼叫 class pers...
JSP的增刪改查part2
1.對cdsndao介面和方法,cdsnservice介面和方法進行處理,並增加cdsnservlet用於對新建展示頁面進行處理 對cdsndao介面和方法增加 介面 獲取cdsn使用者資料列表public listgetcdsnlist cdsndaoimpl增加內容 獲得資料庫所有資料 publ...