javascript新手:Internet Explorer 8不支持object.create()
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
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需要它
参考:
多边形填充:对象。创建
- 特征检测:
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需要它
参考:
多边形填充:对象。创建
- 特征检测:
Object.create
是否不存在。如果没有,那么它定义了它。值包装在(函数(){}())中代码>创建闭包(立即执行外部函数,返回内部函数)。其要点是执行var F=function(){}
一次,每次调用对象时重用F
。创建。Object.create
的值最终是最里面的函数。我不理解这个代码,你是从函数返回函数吗?你能再解释一下吗?@fishman好吧,这不是我的密码;这是MDN的。但我会尽力解释的。显然,它首先检查Object.create
是否不存在。如果没有,那么它定义了它。值包装在(函数(){}())中代码>创建闭包(立即执行外部函数,返回内部函数)。其要点是执行var F=function(){}
一次,每次调用对象时重用F
。创建。Object.create
的值最终是最里面的函数。