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);
    
  • 相关阅读:
    C# 提取方法重构
    防抖和节流
    利用Object.keys快速循环对象
    MVVM深入理解---小白速会
    异步组件使用详解
    动态组件使用详解
    Vue.$nextTick详解
    深入理解vue .sync修饰符
    vue计算属性---快速上手
    grid-layout 网格布局--快速上手
  • 原文地址:https://www.cnblogs.com/xpengp/p/12736610.html
Copyright © 2011-2022 走看看