使用Object.defineProperty(obj , prop , description)可以修改js的对象属性,可以通过这个方法来实现一些神奇的事情。
例子:
var obj = { a:'123', b:'456', c:'789' }; // Add a data property to the object. Object.defineProperty(obj, "b", { writable: true, enumerable: true, configurable: false }); delete obj.a; obj.b = 456; console.log(obj); // {b: '456', c:'789'}
writable控制属性的可写性,默认为true,设置为false则不可修改;
enumerable控制属性的可枚举性,默认为true,设置为false则无法通过for in获取到该属性;
configurable控制属性类型的可定义性,默认为true,设置为false则无法删除该属性。