將屬性添加到對象, 或修改現有屬性的特性---MSDN的解釋.spa
語法code
object.defineProperty(object, propertyname, descriptor)對象
object: 必須. 要修改的屬性的對象.blog
propertyname : 必須. 屬性名稱.ip
descriptor: 必須. 屬性描述符. 他能夠針對數據屬性或訪問器屬性.it
返回值: 已修改的對象.console
可使用object.defineProperty()執行如下操做:table
1.向對象添加新屬性. 當對象不具備指定的屬性名稱時, 發生此操做.class
2.修改現有屬性的特性. 當對象已具備指定的屬性名稱時, 發生此操做.object
修改數據屬性
1 var b = [1, 2, 3]; 2 Object.defineProperty(b, "length", {writable: false}); //讓length變成可讀屬性 3 b.length = 0; 4 console.log(b.length);
添加數據屬性
1 var newLine = "<br/>"; 2 var obj = {}; 3 Object.defineProperty(obj, "newDataProperty", { 4 value:101, 5 writable:true, 6 enumerable:true, 7 configurable:true 8 }); 9 obj.newDataProperty = 102; 10 document.write("Property value: " + obj.newDataProperty + newLine);