zoukankan      html  css  js  c++  java
  • Object.defineProperty使用

    前言

    简单记录一下 ES5 Object.defineProperty的使用

    示例

    const obj = {
        name: "hello world",
        age: 12
    };
    //对象已有的属性添加特性描述
    Object.defineProperty(obj, "$name", {
        // 属性默认都为false
        configurable: false, // 是否可以重新设置特性或用delete删除
        enumerable: true, // 是否可以被for of (in) 枚举
        // value: 'xpp', // 不设置则为undefined
        // writable: false, // 是否可以被重新 附给其它变量也会有这个属性
        get:function (){ // 使用get set 时 不可以使用 value和writable
            //当获取值的时候触发的函数
            console.log('获取', obj.name);
            return obj.name;
        },
        set:function (value){
            //当设置值的时候触发的函数,设置的新值通过参数value拿到
            console.log('设置$name为:', value);
            obj.name = value;
        }
    });
    
    // obj.name = 'xxx';
    // console.log(obj.name);
    
    
    let test = obj;
    test.$name = 'xxx';
    // for (let key in obj) {
    //     console.log(key);
    // }
    console.log(obj.$name);
    console.log(obj);
    console.log(test);
    
  • 相关阅读:
    systemctl
    防火墙firewalld
    k8s 基础概念
    进程
    模板问题
    自动发现
    oracle操作
    aix 10代oracle zabbix2.4.4 日志监控
    paramiko
    test
  • 原文地址:https://www.cnblogs.com/xpengp/p/12736610.html
Copyright © 2011-2022 走看看