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
  }
}
js {}与class属性描述符的区别的更多相关文章
- js 面向对象之属性描述符
		上回介绍了面向对象之构造器属性.这次介绍下属性描述符 遍历对象属性 let person = {name: "lisi"} for (key in person) { consol ... 
- JS属性描述符之Object.defineProperty()定义对象属性特性
		一.Object.defineProperty的作用 用来给对象新增属性,和修改对象中的属性. 二.JS对象中的描述符 js对象中两种属性描述符:数据描述符和存取描述符(访问描述符). 注意事项: 1 ... 
- JS属性描述符
		var myObject = { a:2 }; Object.getOwnpropertyDescriptor(myObject,"a"); { value:2, writable ... 
- JS - 属性描述符各配置的默认值的注意事项
		通过字面量或者obj.x = 1;创建的属性 与 通过Object.defineProperty创建的属性,他们的属性描述符的默认值是不同的,前者都为true,后者都为false. 
- 理解JavaScript中的属性描述符
		我们把描述JavaScript中定义内部特性的属性叫做属性描述符 分为两大类:数据描述符和存取描述符 数据描述符是一个拥有可写或不可写的属性(Writable); 存取描述符不包含数据值,是一组拥有g ... 
- 深入理解javascript对象系列第三篇——神秘的属性描述符
		× 目录 [1]类型 [2]方法 [3]详述[4]状态 前面的话 对于操作系统中的文件,我们可以驾轻就熟将其设置为只读.隐藏.系统文件或普通文件.于对象来说,属性描述符提供类似的功能,用来描述对象的值 ... 
- JavaScript 属性描述符
		属性描述符(Property Descriptor)是 ES5 之后出现的概念,顾名思义,它用于描述属性应该是什么样,例如是否只读,能否枚举,能否可配置等.所有对象属性均可使用属性描述符来定义. 属性 ... 
- Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
		Python:高级主题之(属性取值和赋值过程.属性描述符.装饰器) 背景 学习了Javascript才知道原来属性的取值和赋值操作访问的“位置”可能不同.还有词法作用域这个东西,这也是我学习任何一门语 ... 
- Python 属性描述符和属性的查找过程
		属性描述符可以用来控制给属性赋值的时候的一些行为 import numbers class IntField: def __get__(self, instance, owner): return s ... 
随机推荐
- C# 8.0 可空(Nullable)给ASP.NET Core带来的坑
			Nullable reference types(可为空引用类型) 可为空引用类型不讲武德 C#8.0 引入了"可为空引用类型"和"不可为空引用类型",使我们能 ... 
- <script>元素
			简介 向HTML页面中插入JavaScript的主要方法,就是使用'<'script'>'元素. 标签的位置 现代Web应用程序一般都把全部的JavaScript饮用放在'<'bod ... 
- 安装Archlinux+UEFI启动
			为了安装Arch自己也走了很多弯路,找了很多教程,最后探索出了这样一个安装方法,不一定适用于每个人. ArchWiki官方安装手册 本方法全程插上网线. 准备 获取镜像 镜像可以从官网获取,访问官方下 ... 
- Django(命名空间)
			命名空间 命名空间(英语:Namespace)是表示标识符的可见范围.一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的.这样,在一个新的命名空间中可定义任何标识符,它们不会与任何 ... 
- C++基本之 运算符重载
			=====>友元运算符#include <iostream> using namespace std; class Test { public: Test(int a = 0) { ... 
- JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比
			谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解了前面的前置知识,有利于对垃圾回收器的理解. 什么是垃圾? 垃圾,主要是指堆上的对象, ... 
- Python3.9.1中如何使用split()方法?
			本文出自:lunvey,半路出家学编程之Python.split()方法定义于str类中,str类大家都知道是python内置定义的一个字符串类. split()默认两个参数,分别是分隔符和分隔数量, ... 
- Chocolate Bunny CodeForces - 1407C  思维
			题意: 交互题 题目输入一个n,你需要输出一个满足要求的[1,n]的排列. 你可以最多询问2*n次来确定你要输出的排列·中每一个位置的值 每一次询问格式为"? a b" 它会回复你 ... 
- 2019 ICPC Asia Taipei-Hsinchu Regional  Problem K Length of Bundle Rope  (贪心,优先队列)
			题意:有\(n\)堆物品,每次可以将两堆捆成一堆,新堆长度等于两个之和,每次消耗两个堆长度之和的长度,求最小消耗使所有物品捆成一堆. 题解:贪心的话,每次选两个长度最小的来捆,这样的消耗一定是最小的, ... 
- Mac下anaconda的安装和基本使用
			Mac下anaconda的安装和基本使用 安装 在conda官网下载安装conda. 打开terminal输入conda -V,回车显示conda的版本说明安装成功. 将conda更新到最新版本 co ... 
