旧的IE中的JavaScript Object.create

时间:2013-02-13 22:39:27

标签: javascript internet-explorer

有没有办法让这个代码向后兼容IE6 / 7/8?

function Foo() {
    ...
}

function Bar() {
    ...
}

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

主要问题是Object.create错误,然后崩溃浏览器。

因此,我可以使用一个函数来模拟旧IE的Object.create行为。或者我应该如何重新编写上面的代码来解决它?

1 个答案:

答案 0 :(得分:1)

Pointy的评论作为答案

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();
    };
}

此polyfill涵盖了主要用例,该用例创建了一个新对象,其中已选择原型但未考虑第二个参数。