对象解构是一种有用的JavaScript功能,可以从对象中提取属性并将其绑定到变量。 更好的是,对象解构可以在一个语句中提取多个属性,可以从嵌套对象访问属性,并且可以设置默认...javascript栏目将详细介绍。
JavaScript栏目介绍如何使用对象解构
对象解构是一种有用的JavaScript功能,可以从对象中提取属性并将其绑定到变量。 更好的是,对象解构可以在一个语句中提取多个属性,可以从嵌套对象访问属性,并且可以设置默认值(如果该属性不存在)。 在这篇文章中,我将解释如何在JavaScript中使用对象分解。 目录1.需要对象分解 1.需要对象分解假设您要提取对象的某些属性。在ES2015之前的环境中,您需要编写以下代码: var hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
var name = hero.name;var realName = hero.realName;
name; // => 'Batman',
realName; // => 'Bruce Wayne'属性 这种访问属性并将其分配给变量的方法需要样板代码。通过编写 这就是对象解构语法有用的地方:您可以读取属性并将其值分配给变量,而无需重复属性名称。不仅如此,您还可以在一个语句中读取同一对象的多个属性! 让我们重构上面的脚本,并应用对象分解来访问属性 const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { name, realName } = hero;
name; // => 'Batman',
realName; // => 'Bruce Wayne'
比较两种访问对象属性的方法: const name = hero.name;
const realName = hero.realName;
// is equivalent to:
const { name, realName } = hero;可以看到,由于属性名称和对象变量都没有重复,因此对象的分解更加方便。 2.提取属性对象解构的基本语法非常简单: const { identifier } = expression;哪里 这是使用属性访问器的等效代码: const identifier = expression.identifier; 让我们在实践中尝试对象分解: const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { name } = hero;
name; // => 'Batman'该语句 3.提取多个属性要将对象分解为多个属性,请枚举任意数量的属性,并 const { identifier1, identifier2, ..., identifierN } = expression;其中 这是等效的代码: const identifier1 = expression.identifier1; const identifier2 = expression.identifier2; // ... const identifierN = expression.identifierN; 让我们再次看一下第一部分中的示例,其中提取了2个属性: const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { name, realName } = hero;
name; // => 'Batman',
realName; // => 'Bruce Wayne'
4.默认值如果已解构的对象不具有在解构分配中指定的属性,则将变量分配给 const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { enemies } = hero;
enemies; // => undefined解构后的变量 幸运的是,如果该属性在解构对象中不存在,则可以设置默认值。基本语法如下: const { identifier = defaultValue } = expression;哪里 这是等效的代码: const identifier = expression.identifier === undefined ?
defaultValue : expression.identifier;让我们更改先前的代码示例,并使用默认值功能: const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { enemies = ['Joker'] } = hero;
enemies; // => ['Joker']现在, 5.别名如果要创建名称与属性不同的变量,则可以使用对象分解的别名功能。 const { identifier: aliasIdentifier } = expression;
等效代码: const aliasIdentifier = expression.identifier; 这是一个对象分解别名功能的示例: const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { realName: secretName } = hero;
secretName; // => 'Bruce Wayne'看一下 6.从嵌套对象中提取属性在前面的示例中,对象很简单:属性具有原始数据类型(例如字符串)。 通常,对象可以嵌套在其他对象中。换句话说,某些属性可以包含对象。 在这种情况下,您仍然可以从深处使用对象分解和访问属性。基本语法如下: const { nestedObjectProp: { identifier } } = expression;
销毁后,变量 上面的语法等效于: const identifier = expression.nestedObjectProp.identifier; 您可以从中提取属性的嵌套级别不受限制。如果要从深处提取属性,只需添加更多嵌套的花括号: const { propA: { propB: { propC: { .... } } } } = object;例如,对象 const hero = {
name: 'Batman',
realName: 'Bruce Wayne',
address: {
city: 'Gotham'
}
};
// Object destructuring:
const { address: { city } } = hero;
city; // => 'Gotham'通过对象解构, 7.提取动态名称属性您可以将具有动态名称的属性提取到变量中(属性名称在运行时是已知的): const { [propName]: identifier } = expression;
没有对象分解的等效代码: const identifier = expression[propName]; 让我们看一个 const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const prop = 'name';
const { [prop]: name } = hero;
name; // => 'Batman'
8.销毁后的物体rest语法对于在解构之后收集其余属性很有用: const { identifier, ...rest } = expression;哪里 销毁后,变量 例如,让我们提取属性 const hero = {
name: 'Batman',
realName: 'Bruce Wayne'
};
const { name, ...realHero } = hero;
realHero; // => { realName: 'Bruce Wayne' }破坏 同时,剩余的属性( 9.常见用例9.1将属性绑定到变量如之前的许多示例所示,对象解构将属性值绑定到变量。 对象解构可以给变量赋值使用声明 例如,以下是使用 // let
const hero = {
name: 'Batman',
};
let { name } = hero;
name; // => 'Batman'如何使用 // var
const hero = {
name: 'Batman',
};
var { name } = hero;
name; // => 'Batman'以及如何解构为已声明的变量: // existing variable
let name;
const hero = {
name: 'Batman',
};
({ name } = hero);
name; // => 'Batman'我发现将 const heroes = [
{ name: 'Batman' },
{ name: 'Joker' }
];
for (const { name } of heroes) { console.log(name); // logs 'Batman', 'Joker'
}9.2功能参数解构通常,对象分解可以放置在发生分配的任何位置。 例如,您可以在函数的参数列表内破坏对象: const heroes = [
{ name: 'Batman' },
{ name: 'Joker' }
];
const names = heroes.map(
function({ name }) { return name;
}
);
names; // => ['Batman', 'Joker']
10.总结对象解构是一项强大的功能,可让您从对象中提取属性并将这些值绑定到变量。 我特别喜欢对象分解的简洁语法和在一条语句中提取多个变量的能力。 希望我的帖子对您了解对象分解的有用! 以上就是大神总结如何在JavaScript中使用对象解构的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |
