js {}与class属性描述符的区别
作者:互联网
let data = {
name: "ajanuw",
change() {
this.name = "Ajanuw";
},
get message() {
console.log(this);
return "hello " + this.name;
},
};
console.log( Object.getOwnPropertyDescriptors(data) );
{
name: {
value: 'ajanuw',
writable: true,
enumerable: true,
configurable: true
},
change: {
value: [Function: change],
writable: true,
enumerable: true,
configurable: true
},
message: {
get: [Function: get message],
set: undefined,
enumerable: true,
configurable: true
}
}
class Ajanuw {
name = "ajanuw";
constructor() {
this.name = "suou";
}
change() {
this.name = "Ajanuw";
}
get message() {
return "hello " + this.name;
}
}
let data = new Ajanuw();
console.log( Object.getOwnPropertyDescriptors(data) );
console.log( Object.getOwnPropertyDescriptors( Object.getPrototypeOf(data) ) );
{
name: {
value: 'suou',
writable: true,
enumerable: true,
configurable: true
}
}
{
constructor: {
value: [class Ajanuw],
writable: true,
enumerable: false,
configurable: true
},
change: {
value: [Function: change],
writable: true,
enumerable: false,
configurable: true
},
message: {
get: [Function: get message],
set: undefined,
enumerable: false,
configurable: true
}
}
标签:name,get,true,js,描述符,message,configurable,enumerable,class 来源: https://www.cnblogs.com/ajanuw/p/14163363.html