物件getter和setter屬性 屬性監聽

2021-10-03 03:37:11 字數 1449 閱讀 2264

var obj = 

return this.log[this.log.length - 1];

},set latest(name)

};

由 getter 和 setter 定義的 latest 屬性被稱作「訪問器屬性」或「偽屬性」。「訪問器屬性」是可以繼承的。

getter 跟 vue 裡的計算屬性 computed 非常類似。

可以用delete操作符刪除 getter setter。

delete obj.latest;
object.defineproperty(obj, prop, descriptor)
descriptor 稱做屬性描述符物件,它有兩種主要形式:資料描述符和訪問描述符。

資料描述符和訪問描述符均具有以下可選屬性名(預設值是在使用object.defineproperty()定義屬性的情況下):

資料描述符特有:

訪問描述符特有:

注意:屬性描述符必須是這兩種形式之一;不能同時是兩者。

get 和 set 在 object.defineproperty 裡稱做「訪問操作符」。

object.defineproperty 要麼修改已有屬性,要麼新建屬性,但不能修改繼承屬性。

object.defineproperty 返回乙個物件。

let a = object.defineproperty({}, "name", );

console.log(a); //

通過呼叫 object.getownpropertydescriptor() 方法可以獲取某個物件特定屬性的屬性描述符:

// 通過 object.defineproperty 為 ob 新增乙個屬性c

object.defineproperty(ob, "c", );

object.getownpropertydescriptor(ob, "c");

// =>

第乙個引數是要修改的物件,第二個引數是乙個對映表,它包含要新建或修改的屬性的名稱,以及它們的屬性描述符。例如:

var p = object.defineproperties({}, ,

y: ,

});

var obj = ;

object.defineproperty(obj, "a", ,

set: function(x)

});

var obj = ;

object.defineproperty(obj, "b", ,

set: function(x)

});

setter和getter記憶體處理

person.m import person.h implementation person 析構函式 void dealloc 建構函式 id initwithname nsstring name score nsarray score return self void setname nsstr...

setter方法和getter方法

oc是一門物件導向的語言,物件導向的語言有三大特性,就是封裝性,繼承性和多型性.類的資料與功能的封裝,資料就是成員變數,功能就是類方法或者物件方法,對資料的封裝,也就是對成員變數的封裝,封裝就是把資料隱藏起來,只能用此類的方法才可以讀取或者設定資料,不可被外部任意修改是物件導向設計本質,降低了資料被...

getter 和 setter的運用

1 set 有且僅有乙個引數 2 get不允許有任何引數 var obj set有且僅有乙個引數 setc value 不允許有任何引數 getc setinterval function 16 如果僅有set,沒有get,這個屬性就是只寫屬性 如果僅有get,沒有set,這個屬性就是乙個唯讀屬性 ...