物件屬性型別
每個物件都是基於乙個引用型別建立的
1. 資料屬性
2. 訪問器屬性
4個特性:
1. [[configurable]]:能否delete屬性從而重新定義屬性、能否修改屬性的特性、能否把屬性改為訪問器屬性
2. [[enumerable]]:能否用for-in迴圈返回屬性
3. [[writable]]:能否修改屬性的值
4. [[value]]:包含該屬性的值
**已經在物件上直接定義的屬性,其[[confgurable]]、[[enumerable]]、[[writable]]預設值為true,
[[value]]預設值為undefined
**通過object.defineproperty()方法建立乙個新屬性時,其[[confgurable]]、[[enumerable]]、
[[writable]]預設值為false。
修改屬性預設特性的方法:object.defineproperty(屬性所屬物件,「屬性名」,);
**需要注意的是,一旦把configurable修改為false,就再也不能修改該屬性的特性(除了writable,可以由true改為false,但不能由false
改為true);
**當configurable修改為false時,包括configurable本身也不能改為true;
**當configurable修改為false時,該屬性會被禁止刪除
var person = {};
object.defineproperty(person,"name",);
console.log(person.name); //karine
4個特性:1. [[configurable]]:能否delete屬性從而重新定義屬性、能否修改屬性的特性、能否把屬性改為訪問器屬性。
預設值為false
2. [[enumerable]]:能否用for-in迴圈返回屬性。預設值為false
3. [[get]]:讀取屬性時呼叫的函式。預設值為undefined
4. [[set]]:寫入屬性時呼叫的函式。預設值為undefined
訪問器屬性不能直接在物件上定義,必須object.defineproperty(屬性所屬物件,「屬性名」,);
舊方法:
物件名.__definegetter__(「屬性名」,function());
物件名.__definesetter__(「屬性名」,function());
1. 乙個屬性object.defineproperty(屬性所屬物件名,「屬性名」,);
2. 多個屬性object.defineproperties(物件名,,
屬性2:
});
1. var descriptor = object.getownpropertydescriptor(物件名,"屬性名"); //返回乙個物件
descriptor.特性;
2. object.getownpropertydescriptor(例項名,「屬性名」)//取得例項屬性的屬性特性
3. object.getownpropertydescriptor(建構函式名.prototype, "屬性名")//取得原型屬性的屬性特性
物件導向(一) 物件屬性
物件屬性型別 每個物件都是基於乙個引用型別建立的 1.資料屬性 2.訪問器屬性 4個特性 1.configurable 能否delete屬性從而重新定義屬性 能否修改屬性的特性 能否把屬性改為訪問器屬性 2.enumerable 能否用for in迴圈返回屬性 3.writable 能否修改屬性的值...
一 物件模型
在ruby程式中,物件僅僅是其大世界的乙個公民而已,除了物件還有其他語言構件,比如類 class 模組 module 以及例項變數 imstance variable 等,元程式設計操控的就是這些語言構件。所有語言構件存在於其中的系統稱為物件模型,它是ruby的靈魂。1 物件由一組例項變數和乙個類的...
《一》物件和封裝
物件導向 oop 可以從物件提煉出類的概念。物件是類的例項,類是物件的資料型別。從現實世界抽象出類 找出名詞,確定類 屬性 找出名詞,確定方法 剔除與業務無關的屬性和方法 訪問修飾符 構造方法名 3.3 1 靜態變數 不同的類之間需要對同乙個變數進行操作,把共享的變數用static修飾,那該變數為靜...