首页 > Web开发 > 详细

js {}与class属性描述符的区别

时间:2020-12-20 15:00:44      阅读:29      评论:0      收藏:0      [点我收藏+]
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
  }
}

js {}与class属性描述符的区别

原文:https://www.cnblogs.com/ajanuw/p/14163363.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!