JavaScript 对象新增方法 defineProperty 与 keys 的使用说明
1. defineProperty方法
defineProperty方法是 JavaScript 对象中新增的方法,适用于控制对象属性添加或修改操作。
语法:Object.defineProperty(object, propertyname, descriptor)
参数说明:
- object: 需要定义属性的对象
- propertyname: 需要定义或修改的属性名
- descriptor: 将被定义或修改的属性描述符
常见描述符属性:
- value:属性值,默认为 undefined
- get:获取函数,默认为 undefined
- set:设置函数,默认为 undefined
- enumerable:是否可枚举,默认为 false
- configurable:是否可删除或修改,是否可以添加新属性,默认为 false
示例1: 对象属性值修改并设置为不可修改
let person = {'name':'Tom', 'age':20};
Object.defineProperty(person, 'name',{
value: 'Jerry',
writable: false // 不可修改
});
person.name = 'Alice';
console.log(person.name); // Jerry
示例2: 对象新加属性并设置为不可枚举、可删除
let person = {'name':'Tom', 'age':20};
Object.defineProperty(person, 'sex',{
value: 'male',
configurable: true, // 可删除
enumerable: false // 不可枚举
});
console.log(Object.keys(person)); // ['name', 'age']
delete person.sex;
console.log(Object.keys(person)); // ['name', 'age']
2. keys方法
keys方法是 JavaScript 对象中新增的方法,返回对象所有可枚举属性的键名。该方法返回的键名是一个由键名字符串组成的数组。
语法:Object.keys(object)
参数说明:
- object: 需要获取属性的对象
示例1: 对象属性姓名获取
let person = {'name':'Tom', 'age':20};
console.log(Object.keys(person)); // ['name', 'age']
示例2: 对象遍历
let person = {'name':'Tom', 'age':20};
for (const key of Object.keys(person)) {
console.log(key + ': ' + person[key]);
}
// name: Tom
// age: 20
以上是 defineProperty 与 keys 的使用说明攻略,希望能够帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 对象新增方法defineProperty与keys的使用说明 - Python技术站