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

javascript新手:Internet Explorer 8不支持object.create(),javascript,Javascript,javascript新手:Internet Explorer 8不支持object.create(),以下是一个示例: var tilo = Object.create(Person); 好的,所以IE不支持它。接下来我该怎么办?我应该创建两个不同的javascript文件吗。。一个用于Firefox,一个用于IE?来自MDN的文档,请使用以下内容: if (!Object.create) { Object.create = (function () { var F

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();
        };
    }());
}
在尝试使用
对象之前,请将其包含在页面中。创建
。它检测是否本机可用;如果不是,则使用此自定义代码使其可用。从技术上讲,这应该可以在任何浏览器中使用

永远不要为特定的浏览器创建脚本文件;浏览器版本在功能支持方面有所不同……这就是为什么您应该始终使用功能检测(如以下代码)。InternetExplorer9支持这一点,所以你不应该笼统地认为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();
        };
    }());
}
在尝试使用
对象之前,请将其包含在页面中。创建
。它检测是否本机可用;如果不是,则使用此自定义代码使其可用。从技术上讲,这应该可以在任何浏览器中使用

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

参考:

  • 对象。创建
    多边形填充:
  • 特征检测:

@fishman:protip包括在IE或任何其他工具无法实现的情况下查找垫片(这是一个重要的词)browser@fishman又名“polyfill”-@fishman:一个protip包括在IE或任何其他工具都无法实现的情况下查找垫片(这是一个重要的词)browser@fishman又名“polyfill”-我不懂这个代码,你是从函数返回函数吗?你能再解释一下吗?@fishman好吧,这不是我的密码;这是MDN的。但我会尽力解释的。显然,它首先检查
Object.create
是否不存在。如果没有,那么它定义了它。值包装在
(函数(){}())中创建闭包(立即执行外部函数,返回内部函数)。其要点是执行
var F=function(){}
一次,每次调用
对象时重用
F
。创建
Object.create
的值最终是最里面的函数。我不理解这个代码,你是从函数返回函数吗?你能再解释一下吗?@fishman好吧,这不是我的密码;这是MDN的。但我会尽力解释的。显然,它首先检查
Object.create
是否不存在。如果没有,那么它定义了它。值包装在
(函数(){}())中创建闭包(立即执行外部函数,返回内部函数)。其要点是执行
var F=function(){}
一次,每次调用
对象时重用
F
。创建
Object.create
的值最终是最里面的函数。