JavaScript 开发者必须知道的 5 个对象方法
2. 对象.create()
3. Object.entries()
4. Object.freeze()
5. 对象.is()
在 JavaScript 中,几乎所有东西都是对象,但不幸的是,并不是所有人都知道它带来的好处。
在本文中,我将向您展示五种最常用的对象方法及其示例。
1. 对象.assign()
这也许是 JavaScript 中最常用的对象方法了。简单来说,这个方法会将所有值从一个或多个源复制到一个目标对象。
const chevrolet = {
type: 'sedan',
price: 10000,
isLuxury: true,
};
const honda = Object.assign(chevrolet);
console.log(honda);
// {type: "sedan", price: 10000, isLuxury: true}
在上面的代码块中,我们创建了一个新的对象 chevrolet ,其中包含一些数据。
出于某种原因,我们想要另一个具有相同数据的对象。因此,我们基本上使用assign方法将 chevrolet 中的数据复制到 honda 中。
2. 对象.create()
此方法与 Object.assign() 非常相似——您可以基于引用对象创建一个新对象。然而,不同之处在于,使用assign() 方法创建的对象与引用对象是关联的。对其中一个对象的更改将影响另一个对象(继承链)。
// with assign
const chevrolet = {
type: 'sedan',
price: 10000,
isLuxury: true,
};
const honda = Object.assign(chevrolet);
honda.price = 2000; // this will overwrite both
// the price property in honda
// and chevrolet
console.log(chevrolet);
// {type: "sedan", price: 2000, isLuxury: true}
// with object.create
const chevrolet = {
type: 'sedan',
price: 10000,
isLuxury: true,
};
const honda = Object.create(chevrolet);
honda.price = 2000;
// change will not affect reference object (chevrolet)
console.log(chevrolet);
// {type: "sedan", price: 10000, isLuxury: true}
console.log(honda);
// {type: "sedan", price: 2000, isLuxury: true}
3. Object.entries()
entry.() 方法返回一个包含对象内所有数据(键/值)的数组。
const chevrolet = {
type: 'sedan',
price: 10000,
isLuxury: true,
};
const chevArr = Object.entries(chevrolet);
console.log(chevArr);
// [ [type,sedan,], [price,10000,], [isLuxury,true,]]
4. Object.freeze()
此方法实际上会冻结一个对象,使其不可变。属性无法更改或删除。
const chevrolet = {
type: 'sedan',
price: 10000,
isLuxury: true,
};
Object.freeze(chevrolet);
chevrolet.price = 20000;
console.log(chevrolet.price);
// 10000 instead of 20000.
5. 对象.is()
此方法比较两个对象并返回一个布尔值。
const chevrolet = {
type: 'sedan',
price: 10000,
isLuxury: true,
};
const honda = Object.assign(chevrolet);
const isEqual = Object.is(honda, chevrolet);
console.log(isEqual);
// true
更新:如果你喜欢这篇文章,可以看看我关于数组方法的文章
。好了,希望大家能从中有所收获。
祝你编程愉快。