实现当对象下的属性又是一个对象的时候,怎么来防止该对象下这个对象的属性被改变

Object.defineProperty(Object, 'freezePolyfill', {
		  value: function(obj) {
		    var i;
		    for (i in obj) {
		      if (obj.hasOwnProperty(i)) {
		        if(typeof(obj[i])==='object'){
		          Object.freezePolyfill(obj[i]);
		        }else{
		          Object.defineProperty(obj, i, {
		            writable: false
		          });
		        }
		      }
		    }
		    Object.seal(obj);
		  }
		});
		
	
		const xiaoming = {	
		  age: 14,
		  name: '小明',
		  obj: {
		    a: 1
		  }
		};
		Object.freezePolyfill(xiaoming);
		

  

猜你喜欢

转载自www.cnblogs.com/rickdiculous/p/12153732.html