javascript新手:Internet Explorer 8不支持object.create()



javascript新手:Internet Explorer 8不支持object.create(),下面是一个示例:

var tilo = Object.create(Person); 

好的,IE不支持。接下来我该怎么办?我应该创建两个不同的javascript文件吗。。一个用于Firefox,一个用于IE?

从MDN的文档中,使用以下内容:

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

在尝试使用Object.create之前,请将其包含在您的页面上。它检测它是否在本机上可用;如果不是,它将通过使用此自定义代码使其可用。从技术上讲,这应该可以在任何浏览器中使用。

您永远不应该为特定的浏览器制作脚本文件;浏览器版本在功能支持方面有所不同。。。这就是为什么您应该始终使用特征检测(如此代码)。InternetExplorer9支持这一点,所以你不应该笼统地认为IE需要它

参考:

  • Object.create polyfill:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Polyfill
  • 特征检测:浏览器检测与特征检测

最新更新