zoukankan      html  css  js  c++  java
  • 对象的属性定义

    Object.defineProperty(obj, prop, desc)

    1. obj 需要定义属性的当前对象
    2. prop 当前需要定义的属性名
    3. desc 属性描述符

    desc

    value: 属性值, 默认undefined

    set: setter方法, 默认undefined

    get:getter方法, 默认undefined

    configurable: 属性是否可配置和删除,默认false

    •  false 时,不能删除当前属性,且不能重新配置当前属性的描述符, 但是在writable: true的情况下,可以改变value的值
    • true时,可以删除当前属性(delete xx.propName),可以配置当前属性所有描述符

    writable:是否可修改,默认false

    • true时,可修改value的值,
    • false时,不可修改value的值
    • 注意:可以把writable的状态由true改为false,但是无法由false改为true;
    • 注意:若同时设置了set和get,writable自动转为true

    enumerable:是否可枚举

    • true时,可枚举,
    • false时,不可枚举
    let obj = {}
    let temp = null
    Object.defineProperty(obj, 'name', {
      get: function () {
        return temp
      },
      set: function (val) {
        temp = val
      },
     writable: true,
      configurable: true,
      enumerable: true
    })

      

  • 相关阅读:
    06-tree Shaking
    05-babel-解析高级js语法+polyfill按需注入
    Symbol.iterator
    回调
    finally
    then的参数
    通过简单例子看Promise(一)
    作为Promise构造函数参数的函数
    resolved和rejected
    resolve和reject
  • 原文地址:https://www.cnblogs.com/baixinL/p/14200958.html
Copyright © 2011-2022 走看看