有没有办法让这个代码向后兼容IE6 / 7/8?
function Foo() {
...
}
function Bar() {
...
}
Bar.prototype = Object.create(Foo.prototype);
主要问题是Object.create
错误,然后崩溃浏览器。
因此,我可以使用一个函数来模拟旧IE的Object.create
行为。或者我应该如何重新编写上面的代码来解决它?
答案 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涵盖了主要用例,该用例创建了一个新对象,其中已选择原型但未考虑第二个参数。