物件(Object)相關

2022-09-08 00:33:31 字數 2248 閱讀 4566

詳情參考

js原生提供object建構函式。js中所有的物件都是object的例項。

定義乙個物件最簡單的就是var obj = {};

es6屬性和方法允許簡寫。物件的super屬性只能用在簡寫的方法中,其他的地方都會報錯。

let a = 5;

let obj =

};

屬性可以使用訪問器表示。訪問器的使用場合一般是: 屬性的值依賴物件內部資料。

var obj =,

set v(value)

}obj.v; //5

obj.v = 10;

obj.v;

//15

物件要求屬性名必須是字串,如果不是字串,js引擎會自動將其轉為字串。

var obj=

//var obj =

⚠️如果屬性名不是有效的變數識別符號,字串不能省略。

es6

1)屬性名表示式,允許屬性名通過用表示式準備。內有字串說明是屬性名,沒有字串說明是變數。

var obj =

}

2)新增symbol型別的屬性名

name屬性返回函式的名稱。

.bind()的函式會返回「bond 函式名」;匿名函式"anoymous";物件的方法名為symbol("函式名")返回引號中函式名

遍歷規則:

1)先遍歷數字屬性,從小到大

2)遍歷字串屬性,按照時間從早到晚(push的最早的)

3)遍歷symbol屬性,按照時間從早到晚

屬性遍歷方法:

1)for...in   遍歷原型和自身的可列舉屬性(不含symbol)

2)object.keys() --返回陣列,陣列元素是自身可列舉屬性(不含symbol)

3)object.getownpropertynames 遍歷自身可列舉和不可列舉屬性(不含symbol)

es64)object.getownpropertysymbols()遍歷自身的symbol屬性

5)reflect.ownkeys() 遍歷自身的所有屬性

值遍歷方法

1)object.values()---返回陣列

2)object.entries()---返回二維陣列

ps:object.fromentries()將map轉為物件;或者object.entries()遍歷的結果(二維陣列)轉為物件

es6

1)相同點: 兩者相當於另一種形式的遍歷,針對的都是可列舉型別

都是{},因為自動轉換生成的物件的屬性都是不可遍歷的屬性或者是{}{}

-- 不同點:前者的target引數不能是null和undefined; ...可以是null和undefined

⚠️:...(表示式) ---擴充套件運算子可以跟表示式

2)物件的拷貝

淺拷貝--遍歷拷貝第一層屬性。如果屬性值是物件,則拷貝的是物件的位址。

⚠️:建立了乙個新物件,並將第一層屬性拷貝過去。

let a = object.assign({},obj); //

a != obj

let a = ; //

a != obj

let a = obj; a=== obj;

物件的完整轉殖規則:1.原型物件相同;2.自身屬性相同

object.assign(object.create(object.getprototypeof(obj)),obj)

object.create(object.getprototypeof(obj), object.getownpropertydescriptors(obj))

功能基本和===相同。

區別: 1)object.is(nan, nan) --true  2) object.is(+0, -0) -- false

1)prototype屬性是建構函式的屬性,例項物件沒有該屬性

2) __proto__例項物件的屬性,表示該例項物件的原型物件

2)讀取,設定原型物件

---1.__proto__瀏覽器例項物件的私有屬性,可以讀取,寫入,但是不建議使用

---2.getprototypeof(),setprototypeof

---3.object.create(原型物件,屬性描述物件)⚠️如果屬性預設,預設false, value預設undefine

Object物件的相關方法

object.getprototypeof方法返回引數物件的原型。這是獲取原型物件的標準方法。var f function var f new f object.getprototypeof f f.prototype true下面是幾種特殊物件的原型。空物件的原型是 object.prototyp...

列印object物件

一般情況在測試js時,如果介面返回的資料是object物件。如果不知道這個物件裡面具體的屬性就取值容易得到undefined。哪麼怎麼知道乙個object物件裡面到底是什麼東西呢。答案就是將其轉換成string字串列印出來。function obj2string o if typeof o obje...

物件導向 object

object 是所有物件的直接後者間接父類,傳說中的上帝。該類中定義的肯定是所有物件都具備的功能。object類中已經提供了對物件是否相同的比較方法。如果自定義類中也有比較相同的功能,沒有必要重新定義。只要沿襲父類中的功能,建立自己特有比較內容即可。這就是覆蓋。class demo extends ...