6種你應(yīng)該知道的強(qiáng)大JavaScript對象方法

1、Object.keys( )
const employee = {name: "James",age: 25,available: true}//Print the keys in the consoleconsole.log(Object.keys(employee));//output: ["name", "age", "available"]
如你在上面的示例中看到的,我們得到一個(gè)包含鍵作為輸出的數(shù)組。現(xiàn)在,你可以使用任何其他數(shù)組方法來訪問和迭代鍵。
由于對象不具有l(wèi)ength屬性,因此,你也可以通過Object.keys( )用來獲取對象的長度。
示例如下:
Object.keys(employee).length; //32、Object.freeze( )
該方法Object.freeze( )防止對象中的數(shù)據(jù)突變。因此,你不能將Object.freeze( )作為參數(shù)傳遞給對象,更不能添加,更新或刪除屬性。
看下面的例子:
const employee = {name: "James",age: 25,available: true}//Freezing the object.Object.freeze(employee);//updating and adding properties.employee.name = "Brad";employee.newProp = "Hard Worker";console.log(employee);//Output: {name: "James", age: 25, available: true}
如你所見,即使我們更新了屬性,該對象也不會(huì)更改。
3、Object.seal( )
該方法Object.seal( )有點(diǎn)類似于Object.freeze( )。它可以防止向?qū)ο筇砑有聦傩裕强梢愿暮透卢F(xiàn)有屬性。
const user = {name: "Alex",age: 23,isOnline: false}//使用Object.seal()Object.seal(user);//更新屬性。user.isOnline = true;//添加一個(gè)屬性。user.active = false;console.log(user);//輸出:{名稱:“ Alex”,年齡:23,isOnline:true}
該屬性isOnline已更新,但是我們無法將該屬性添加active到對象中,因?yàn)槲覀兪褂肙bject.seal( )它來防止這種情況的發(fā)生。
4、Object.values( )
該方法Object.values()允許你將對象內(nèi)的所有值作為數(shù)組獲取。你只需要將對象作為參數(shù)傳遞給方法Object.values()。
這是一個(gè)例子:
const user = {name: "Alex",age: 23,isOnline: false}console.log(Object.values(user));//output: ["Alex", 23, false]
如你所見,你將獲得一個(gè)對象值數(shù)組。現(xiàn)在,你可以使用該數(shù)組執(zhí)行任何操作。
5、Object.entries( )
該方法Object.entries()也是有用的。它允許你同時(shí)獲取對象的鍵和值,并返回一個(gè)多維數(shù)組,該多維數(shù)組包含每個(gè)鍵和值的其他數(shù)組。
讓我們看一個(gè)實(shí)際的例子:
const user = {name: "Alex",age: 23,isOnline: false}console.log(Object.entries(user));//output: [["name", "Alex"], ["age", 23], ["isOnline", false]]
如你在示例中所見,該方法Object.entries( )允許我們將鍵和值作為數(shù)組獲取。
6、Object.create( )
該方法Object.create()用于從另一個(gè)現(xiàn)有對象的原型創(chuàng)建一個(gè)新對象。
看下面的例子:
const user = {firstName: "John",lastName: "Doe",age: 25,fullName(){return `${this.firstName} ${this.lastName}`;}}//新對象。let newObject = Object.create(user);//更新屬性。newObject.firstName = "Mehdi";newObject.lastName = "Aoussiad";//我們也可以在此新對象中使用user的fullName方法。newObject.fullName(); //輸出:Mehdi Aoussiadconsole.log(newObject);//輸出:{firstName:“ Mehdi”,lastName:“ Aoussiad”}
在上面的示例中,我們用于Object.create()創(chuàng)建一個(gè)具有用戶對象原型的新對象。這就是為什么我們能夠更改屬性并user在新對象中使用對象的方法的原因。如果你不想在對象中復(fù)制代碼,這將非常有用。
結(jié)論
如你所見,這些對象方法在JavaScript中很有用,因?yàn)樗鼈兡軌驇椭_發(fā)人員更輕松地處理對象。在某些情況下,你肯定需要使用這些方法。
感謝您閱讀本文。希望你覺得它有用。
本文完?
學(xué)習(xí)更多技能
請點(diǎn)擊下方web前端開發(fā)
![]()

