2013-02-13 66 views
0

有沒有辦法讓這個代碼向後兼容IE6/7/8?舊的IE的JavaScript Object.create

function Foo() { 
    ... 
} 

function Bar() { 
    ... 
} 

Bar.prototype = Object.create(Foo.prototype); 

主要問題是Object.create錯誤,然後崩潰瀏覽器。

所以有一個功能,我可以放在模擬舊的IE瀏覽器的行爲Object.create。或者我應該如何重新編碼以上解決方法?

+7

[在MDN文檔中有一個polyfill。](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create) – Pointy 2013-02-13 22:40:29

+0

@Pointy如果你想要一個答案代表。 – Petah 2013-02-13 22:57:17

+0

https://github.com/kriskowal/es5-shim – Bergi 2013-02-13 23:25:24

回答

1

一個答案尖尖的評論

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create#Polyfill

if (!Object.create) { 
    Object.create = function (o) { 
     if (arguments.length > 1) { 
      throw new Error('Object.create implementation only accepts the first parameter.'); 
     } 
     function F() {} 
     F.prototype = o; 
     return new F(); 
    }; 
} 

此填充工具覆蓋被創建,其原型已被選定,但並不需要第二個參數爲一個新的對象主要用例帳戶。