物件導向(一) 物件屬性

2021-08-01 14:31:11 字數 1736 閱讀 7460

物件屬性型別

每個物件都是基於乙個引用型別建立的

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修飾,那該變數為靜...