物件導向 part2 屬性的特性

2022-09-08 14:51:14 字數 1448 閱讀 1182

建立自定義物件最簡單的方式就是建立乙個object例項。然後新增方法和例項

var person = new

object()

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...