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

    方法说明:

    用来定义或修改对象的属性。

    共3个参数都是必须的:obj-目标对象、newKey-属性名、{}-属性特性

    给对象的属性添加特性描述(第三个参数),目前提供两种形式:数据描述存取器描述

    数据描述:

    Object.defineProperty(obj,"newKey",{
      value:"hello", // 设置属性的值
      writable:false, // 值是否可以重写。true | false
      enumerable:false, // 目标属性是否可以被枚举。true | false(使用for...in或Object.keys())
      configurable:false // 目标属性是否可以被删除或是否可以再次修改特性 true | false
    });

    存取器描述:
    注:当使用了getter或setter方法,不允许使用writable和value这两个属性

    var obj = {};
    var initValue = 'hello';
    Object.defineProperty(obj,"newKey",{
        get:function (){
            //当获取值的时候触发的函数
            return initValue;    
        },
        set:function (value){
            //当设置值的时候触发的函数,设置的新值通过参数value拿到
            initValue = value;
        }
    });
    //获取值
    console.log( obj.newKey );  //hello
    
    //设置值
    obj.newKey = 'change value';
    
    console.log( obj.newKey ); //change value
  • 相关阅读:
    monaco editor
    javascript for of 和 for in 在数组和对象中的区别
    django rest 版本控制器
    学习
    day 22
    day 21
    day20
    day21 数据处理自我小结
    day20 【手写数字识别】之数据处理(搬运)
    day19 通过极简方案快速构建手写数字识别模型 (百度飞浆搬运)
  • 原文地址:https://www.cnblogs.com/gr07/p/9791698.html
Copyright © 2011-2022 走看看