一个例子根据结果查看每个方法的作用。
window.onload = function () {
var obj = new Object();
Object.defineProperty(obj, 'name',
{
configurable: false,
writable: true,
enumerable: true,
value: '张三'
})
console.log(obj.name) //张三
var obj1 = new Object();
Object.defineProperties(obj1, {
name: {value: '张三', configurable: false, writable: true, enumerable: true},
age: {value: 18, configurable: true}
})
console.log(obj1.name, obj1.age) // 张三, 18
var person = {
name: '张三',
age: 18
}
var desc = Object.getOwnPropertyDescriptor(person, 'name');
console.log(desc)
//{value: "张三", writable: true, enumerable: true, configurable: true}
// configurable: true
// enumerable: true
// value: "张三"
// writable: true
// __proto__: Object
var desc1 = Object.getOwnPropertyDescriptors(person);
console.log(desc1)
//{name: {…}, age: {…}}
// age:
// configurable: true
// enumerable: true
// value: 18
// writable: true
// __proto__: Object
// name:
// configurable: true
// enumerable: true
// value: "张三"
// writable: true
// __proto__: Object
// __proto__: Object
}