Object建構函式常用的方法

2021-09-13 10:57:53 字數 2556 閱讀 6809

物件的合併 將源物件(source)的所有可列舉屬性複製到目標物件

object.assign(target, source1, source2)
如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性會覆蓋前面的。object.assign()拷貝的屬性是有限制的,只拷貝源物件的自身屬性(不拷貝繼承屬性),也不拷貝不可列舉屬性。

插播一段知識點:

物件的每個屬性都有乙個描述物件(descriptor),用來控制該屬性的行為。object.getownpropertydescriptor方法可以獲取該屬性的描述物件。

let obj = ;

object.getownpropertydescriptor(obj, 'foo')

//

建立乙個新物件,使用現有的物件來提供新建立的物件的__proto__

object.create(proto, [propertiesobject])
proto

新建立物件的原型物件。

propertiesobject

可選。如果沒有指定為 undefined,則是要新增到新建立物件的可列舉屬性(即其自身定義的屬性,而不是其原型鏈上的列舉屬性)物件的屬性描述符以及相應的屬性名稱。這些屬性對應object.defindproperties()的第二個引數。

該方法直接在乙個物件上定義乙個新屬性,或者修改乙個物件的現有屬性, 並返回這個物件。

object.defineproperty(obj, prop, descriptor)
obj

要在其上定義屬性的物件。

prop

要定義或修改的屬性的名稱。

descriptor

將被定義或修改的屬性描述符。

object.defineproperty(obj, "key", );
直接在乙個物件上定義新的屬性或修改現有屬性,並返回該物件。

object.defineproperties(obj, props)
var obj = {};

object.defineproperties(obj, ,

'property2':

// etc. etc.

});

object.is() 判斷兩個值是否相同。如果下列任何一項成立,則兩個值相同:

這種相等性判斷邏輯和傳統的 == 運算子所用的不同,== 運算子會對它兩邊的運算元做隱式型別轉換(如果它們型別不同),然後才進行相等性比較,(所以才會有類似 "" == false 為 true 的現象),但 object.is 不會做這種型別轉換。

這與===運算子也不一樣。===運算子(和==運算子)將數字值-0和+0視為相等,並認為number.nan不等於nan。

object.keys():返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵名

object.values:返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值

object.entries:返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對陣列

let  = object;

let obj = ;

for (let key of keys(obj))

for (let value of values(obj))

for (let [key, value] of entries(obj))

返回指定物件的原型(內部[[prototype]]屬性的值)。

語法:

object.getprototypeof(object)
object:要返回其原型的物件。

返回值:給定物件的原型。如果沒有繼承屬性,則返回 null

const prototype1 = {};

const object1 = object.create(prototype1);

console.log(object.getprototypeof(object1) === prototype1);

// expected output: true

介紹乙個常用操作符in

如果指定的屬性在指定的物件或其原型鏈中,則in 運算子返回true

語法:prop in object

var obj =

console.log('a' in obj); // true

console.log('b' in obj); // false

Object常用方法

1 clone方法 保護方法,實現物件的淺複製,只有實現了cloneable介面才可以呼叫該方法,否則丟擲clonenotsupportedexception異常。2 getclass方法 final方法,獲得執行時型別。3 tostring方法 該方法用得比較多,一般子類都有覆蓋。4 finali...

Object類的常用方法

1.public boolean equals obj 用於比較對於某個其他物件obj與當前物件是否相等。只有被比較的兩個參考型別的變數指向同乙個物件時,返回true,否則返回false。2.public final void notify 喚醒在此物件監視器上等待的單個執行緒。3.public f...

Object類的常用方法

今天再看面試實錄有問到object類的常用方法,自己竟然一時有些答不出來,所以記錄下來,給自己和大家一些提醒和回顧。1.hashcode 2.equals 3.wait 4.notify 5.notifyall 6.tostring 7.getclass 8.clone 9.finalize 該方法...