• 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改为:哈哈
  • 相关阅读:
    算法:二分图最大独立集
    算法:桶排序
    算法:二分图最小点覆盖——Konig定理
    jQuery基础整理之思维导图
    vue基础知识整理
    HTML总结
    JAVAScript总结
    栈和队列
    今日学习遇到的问题(2018.9.23)
    看了vue文档之后。。。。
  • 原文地址:https://www.cnblogs.com/h5it/p/13618203.html
Copyright © 2020-2023  润新知