zoukankan      html  css  js  c++  java
  • Object.defineProperty与Object.difinePropertyies

    关于Object.difineProperty的用法很简单,就是传三个参数(对象,属性,一些可配置的属性)

    Object.difineProperty(obj,prop,descriptor)
     function defineproperty(){
            var _obj={}
            Object.defineProperty(_obj,'a',{
                value:40,
                // writable:false, //是否可编辑
                // enumerable:true //是否可枚举
            })
            return _obj
      }
    
    
      var Obj=defineproperty();
      console.log(Obj.a) //访问a的值
    
        // Obj.a='fsdfsd';
        // console.log(Obj) //writable默认为false,,表示不可修改,当设置为true之后Obj里面的a值就可以修改 打印出 {a: "fsdfsd"},否则不可修改
    
    
     for(key in Obj){ 
    //enumerable默认为false,表示不可枚举,设置为true之后才能打印出Obj里面的属性
            console.log('ff'+key)
        }

    重点是Object.difinePropertyies,最常用,很多响应式都是使用它实现的,它里面有getter,setter方法来监听对数据的操作(数据劫持)

     function Defineproperties(){
            var _obj={}
           let obj=Object.defineProperties(_obj,{
                a:{
                    get(){
                        
                    },
                    set(newval){
                        console.log('设置了'+newval)
                    }
                },
                b:{
                    get(){
                       
                        return '获取的时候b改为:哈哈'
                    },
                    set(newval){
                        console.log('设置了b'+newval)
                    }
                }
            })
            return obj;
        }
    
    
        var difineObj=Defineproperties();
    
    
        console.log(difineObj.b) // 获取的时候b改为:哈哈
  • 相关阅读:
    仪器的接口类型
    FIREDAC用于LINUX报头文件FireDAC.VCLUI.Wait找不到
    咏南中间件网站框架
    UNIGUI下载文件
    UNIGUI上传文件
    unigui回车代替TAB
    DELPHI开发LINUX桌面程序
    TDiocpCoderTcpServer 使用
    UNIGUI换版本注意事项
    git 撤销提交的文件
  • 原文地址:https://www.cnblogs.com/h5it/p/13618203.html
Copyright © 2011-2022 走看看