JS物件導向之物件的屬性

2021-09-05 09:30:06 字數 2454 閱讀 3424

1.屬性的設定和獲取

通過 . 操作符或者[ ]

區別:. 操作符取自身的屬性,[ ]可以是變數

var o =

;o.name =

"緣滅"

;var aaa =

"name"

;console.

log(o[aaa]);

//緣滅

ps:一道比較坑的筆試題

var str =

"abc"

;str +=1;

var test =

typeof

(str);if

(test.length ==6)

console.

log(test.sign)

;//undefined

2.屬性的刪除
delete命令用於刪除物件的屬性,刪除成功後返回true。刪不掉原型上的

注意:刪除乙個不存在的屬性,delete不報錯,而且返回true。因此,不能根據delete命令的結果,認定某個屬性是存在的。

var obj =

;delete obj.p // true

obj.p // undefined

3.屬性的檢測
in 或者 hasownproperty()方法

var o =

;o.name =

"緣滅"

;console.

log(

"name"

in o)

;//true

console.

log(o.

hasownproperty

("name"))

;//true

4.屬性的列舉
for…in迴圈用來遍歷乙個物件的全部屬性。包括原型上的屬性,而且順序是不確定的

var obj =

;for

(var i in obj)

檢視乙個物件本身的所有屬性,也可以使用object.keys方法。

var obj =

;object.

keys

(obj)

;// ['key1', 'key2']

}

5.es中有兩種屬性:資料屬性和訪問器屬性
資料屬性:

[[configurable]]:表示能否通過delete刪除屬性,預設true

[[enumerable]]:表示能否通過for-in迴圈返回屬性,預設true

[[writable]]:表示能否修改屬性的值,預設true

[[value]]:包含這個屬性的資料值,預設undefined

修改預設屬性特性:object.defineproperty(屬性所在的物件,屬性名,描述符物件)
var person =

;object.

defineproperty

(person,

"name",)

;alert

(person.name)

;//nicholas

person.name = "michael」;

//修改不成功,嚴格模式下會報錯

alert

(person.name)

;//nicholas

注意:一旦把屬性定義為不可配置,就不能再把他變回可配置了。此時再呼叫除writable之外的特性都會報錯。

訪問器屬性:

[[configurable]]:表示能否通過delete刪除屬性,預設true

[[enumerable]]:表示能否通過for-in迴圈返回屬性,預設true

[[get]]:讀取屬性時呼叫的函式,預設undefined

[[set]]:寫入屬性時呼叫的函式,預設undefined

必須使用 object.defineproperty(屬性所在的物件,屬性名,描述符物件) 定義訪問器屬性
var book =

;object.

defineproperty

(book,

"year",,

set:

function

(newvalue)}}

);book.year =

2006

;alert

(book.edition)

;//3

js物件導向之公有 私有 靜態屬性

示例 function 1.公有屬性和公有方法 function user name,age user.prototype.getname function var user newuser fire子海 26 console.log user.getname output fire子海 2.私有屬...

Python物件導向之屬性

任務 定義乙個 dog 類,在類中定義屬性 name 和 age 在類外部可以修改該 name 和 age 的值,值通過 input 獲取。請在下面的begin end之間按照注釋中給出的提示編寫正確的 begin class dog 第一步 定義屬性 definit self,name,age s...

python物件導向之屬性

property是一種特殊的屬性,訪問它時會執行一段功能 函式 然後返回值 class person def init self,name,height,weight self.name name self.height height self.weight weight property 裝飾,將...