var o = (function (){
var obj = {
a:1,
b:2,
};
return {
get: function(k) {
return obj[k];
},
};
})();
// 如何在不改变上面代码的情况下,修改obj对象
Object.defineProperty(Object.prototype,'abc',{
get(){
return this;
},
});
var obj1 = o.get('abc');
obj1.c = 2;
obj1.a = 13123;
console.log(o.get('a'));
-------------------------------如何防止被修改-------------------------------
var o = (function (){
var obj = {
a:1,
b:2,
};
return {
get: function(k) {
// 对比原对象
if(obj.hasOwnProperty(k)){
return obj[k];
}
return undefined;
},
};
})();