2012-09-26 28 views
1
var o = {}; // Creates a new object 

加入defineProperty與數據屬性描述符的對象屬性的實施例Object.defineProperty用於IE

Object.defineProperty(o, "a", {value : 37, 
           writable : true, 
           enumerable : true, 
           configurable : true}); 

如何實現用於IE7-8?(具有屬性可寫的,枚舉的,可配置的)

+1

根據[MDN](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty#Browser_compatibility),IE9之前(幾乎)不支持IE。 – Sirko

+1

你不能,不是真的......閱讀[檢查列表](http://kangax.github.com/es5-compat-table/),[也檢查這個問題](http:// stackoverflow.com/questions/4819693/working-around-ie8s-broken-object-defineproperty-implementation)一些額外的信息 –

+0

非常非常糟糕.... – lazer09

回答

0
if (!Object.defineProperty) { 
     Object.defineProperty = function (obj, prop, descriptor) { 
      if (arguments.length < 3) { // all arguments required 
       throw new TypeError("Arguments not optional"); 
      } 

      prop += ""; // convert prop to string 
      ...