zoukankan      html  css  js  c++  java
  • Object.defineProperty()

    今天看ES6的class时,看到了Object.defineProperty()这一ES5的定义对象属性的方法。

    在js中我们可以通过下面这几种方法定义属性:

     1 // (1) define someOne property name
     2 
     3   someOne.name = 'cover';
     4 
     5 //or use (2)
     6 
     7   someOne['name'] = 'cover';
     8 
     9 // or use (3) defineProperty
    10 
    11   Object.defineProperty(someOne, 'name', { value : 'cover' })

    今天另外两个不多说了,主要讲第三个,今天的主角Object.defineProperty()

    其使用语法是这样的:

    Object.defineProperty(obj, prop, descriptor)

    obj 需要被操作的目标对象

    prop 目标对象需要定义或修改的属性的名称

    descriptor 将要被定义或修改的属性的描述符

    主要讲descriptor描述符,其形式主要有两种:数据描述符(value/writable)和存取描述符(getter/setter),在定义对象属性时,描述符只能是其中之一,不能同时是两者

    ◆描述符的可选键值

      数据描述符和存取描述符均具有的一下可选键值

      configurable:表示对象的属性是否可以被删除,以及除 writable 特性外的其他特性是否可以被修改(writable可被修改,但只能被改为false) 默认值:false

      enumerable:表示该属性能否出现在对象的枚举属性中。定义了对象的属性是否可以在 for...in 循环 和 Object.keys() 中被枚举 默认值:false

      数据描述符的可选键值

      value:表示该属性对应的值。可以是任何有效的 JavaScript 值(数值,对象,函数等)默认值:undefined

      writable:表示该属性能否被复制运算符所改变。为false时,属性值不能被修改,属性值被修改时不会改变其值,但也不会报错 默认值:false

      存取描述符的可选键值

      get:当访问该属性时,就会调用这个方法,并返回结果 默认值:undefined

      set:当设置该属性时,就会调用这个方法 默认值:undefined

  • 相关阅读:
    Java 泛型的使用
    IDEA 2017.2.2 环境下使用JUnit
    Tomcat的下载安装及使用
    JavaScript基础知识(二)
    JavaScript基础知识(一)
    CSS3基础(4)——CSS3 渲染属性
    CSS3基础(3)——CSS3 布局属性全接触
    CSS3基础(2)—— 文字与字体相关样式、盒子类型、背景与边框相关样式、变形处理、动画功能
    CSS3 基础(1)——选择器详解
    CSS基础学习笔记
  • 原文地址:https://www.cnblogs.com/s-qiu/p/7611769.html
Copyright © 2011-2022 走看看