es5中定義了兩種屬性,分別是資料屬性和訪問器屬性。
1、資料屬性:資料屬性的四個特性分別是它的值(value)、可寫性(writable)、可列舉性(enumerable)和可配置性(configurable)。
var o = {};
//為物件o新增乙個值為1,屬性名為x,可寫,不可列舉,可配置的屬性。
object.defineproperty(o, 'x', );
如果要同時修改或建立多個屬,則需要使用object.defineproperties()。
var p = object.defineproperties({}, ,
y: });
console.log(p); //返回
2、訪問器屬性:訪問器屬性有兩大特性,getter方法和setter方法。
題一:
//如何在不更改**的情況下,獲得原person物件
var o = (function() ;
return ,
}}());
解答如下:
//使用defineproperty方法為物件原型新增自定義的訪問器屬性
//在查詢任意object()例項化物件的屬性self時,呼叫get方法,get內部this指向當前物件
object.defineproperty(object.prototype, 'self',
})console.log(o.run("self"));//輸出
題二:實現input表單和object物件的乙個屬性的雙向資料繫結
var obj = object.defineproperty({}, 'a', ,
get: function()
})$("input").on("input", function() )
注意:object.defineproperty()中不能同時設定訪問器屬性和value或者writable。 Object的資料屬性和訪問器屬性
一 資料屬性 1.資料屬性 它包含的是乙個資料值的位置,在這可以對資料值進行讀寫。2.資料屬性包含四個特性,分別是 configurable 表示能否通過delete刪除屬性從而重新定義屬性,能否修改屬性的特性,或能否把屬性修改為訪問器屬性,預設為true enumerable 表示能否通過for ...
JS中的資料屬性和訪問器屬性
資料屬性 包含乙個資料值的位置,在這個位置可以讀取和寫入值。有4個描述其行為的特性 1 configurable 表示能否通過delete刪除屬性,從而重新定義屬性,預設值為ture 2 enumerable 表示能否通過for in迴圈返回屬性,預設值為ture 3 writable 表示能否修改...
屬性訪問器
synthesize result 表示建立該屬性的訪問器,這樣就可以直接訪問result屬性。在沒有新增屬性訪問器的時候,在main中這樣實現 myclass myclass myclass alloc init myclass setresult hello myclass shixian 新增...