问题描述: 什么是对象的简洁表示法(Shorthand Property)?给出一个使用简洁表示法的示例。
答案: 对象的简洁表示法是一种在对象字面量中定义属性的简化语法。当属性名和变量名相同时,可以省略属性值的重复。
以下是一个使用简洁表示法的示例:
const name = 'Alice';
const age = 30;
const person = { name, age };
console.log(person); // 输出 { name: 'Alice', age: 30 }
问题描述: 什么是对象的可计算属性名方法(Computed Property Methods)?给出一个使用可计算属性名方法的示例。
答案: 可计算属性名方法是一种在对象字面量中定义方法并使用可计算属性名的语法。通过使用方括号 []
和表达式,可以根据运行时的值来计算方法名。
以下是一个使用可计算属性名方法的示例:
const methodName = 'sayHello';
const person = {
name: 'Alice',
[methodName]() {
console.log(`Hello, my name is ${this.name}`);
}
};
person.sayHello(); // 输出 'Hello, my name is Alice'
问题描述: 什么是对象的解构赋值别名(Alias)?给出一个使用解构赋值别名的示例。
答案: 对象的解构赋值别名允许我们为从对象中解构的属性创建新的变量,并使用别名来命名这些变量。这样可以方便地重命名变量名。
以下是一个使用解构赋值别名的示例:
const person = { name: 'Alice', age: 30 };
const { name: fullName, age: years } = person;
console.log(fullName, years); // 输出 'Alice' 30
问题描述: 什么是对象的方法绑定(Method Binding)?给出一个使用方法绑定的示例。
答案: 对象的方法绑定是一种确保对象方法中的 this
关键字始终指向正确对象的技术。通过使用箭头函数或 bind()
方法,可以绑定方法的上下文。
以下是一个使用方法绑定的示例:
const person = {
name: 'Alice',
sayHello() {
console.log(`Hello, my name is ${this.name}`);
}
};
const boundSayHello = person.sayHello.bind(person);
boundSayHello(); // 输出 'Hello, my name is Alice'
问题描述: 什么是对象的扩展运算符(Object Spread Operator)?给出一个使用扩展运算符的示例。
答案: 对象的扩展运算符允许我们从一个对象中提取属性,并将这些属性复制到另一个对象中。它类似于对象展开语法,但可以在任意位置使用。
以下是一个使用扩展运算符的示例:
const person = { name: 'Alice', age: 30 };
const { name, ...rest } = person;
console.log(name); // 输出 'Alice'
console.log(rest); // 输出 { age: 30 }