Object.defineProperty监听对象的值

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Object.defineProperty 监听对象的值</title>
<script>
var obj = {};
var initValue = 'hello';
Object.defineProperty(obj, "newKey", {
    get:function (){
        // 当获取值的时候触发的函数
        return initValue;    
    },
    set:function (value){
        // 当设置值的时候触发的函数,设置的新值通过参数value拿到
        initValue = value;
        alert("只要obj.newKey发生了变化就会弹窗:" + initValue);
    }
});

// 获取值
console.log(obj.newKey);  //hello

// 设置值之后再获取
obj.newKey = 'Hello world';
console.log(obj.newKey); //Hello world
	
setTimeout(function(){
	obj.newKey = 'Hello world 666';
},2000);
</script>
</head>
<body>

</body>
</html>

猜你喜欢

发表评论

最新发布