关于IE8不支持Object.keys()的处理
来源:互联网 发布:网络市场调研方法 编辑:程序博客网 时间:2024/06/18 15:10
var h = dst.$$hashKey;
for (var i = 1, ii = arguments.length; i < ii; i++) {
var obj = arguments[i];
if (obj) {
var keys = Object.keys(obj);
for (var j = 0, jj = keys.length; j < jj; j++) {
var key = keys[j];
dst[key] = obj[key];
}
}
}
setHashKey(dst, h);
return dst;
}
Object.keys()是javascript的一个函数,这个函数返回对象的可枚举属性和方法的名称,但在IE8下会报错,在原来代码之前加上一段,即可解决这个错误。修改之后如下:
var DONT_ENUM = "propertyIsEnumerable,isPrototypeOf,hasOwnProperty,toLocaleString,toString,valueOf,constructor".split(","),
hasOwn = ({}).hasOwnProperty;
for (var i in {
toString: 1
}){
DONT_ENUM = false;
}
Object.keys = Object.keys || function(obj){//ecma262v5 15.2.3.14
var result = [];
for(var key in obj ) if(hasOwn.call(obj,key)){
result.push(key) ;
}
if(DONT_ENUM && obj){
for(var i = 0 ;key = DONT_ENUM[i++]; ){
if(hasOwn.call(obj,key)){
result.push(key);
}
}
}
return result;
};
function extend(dst) {
var h = dst.$$hashKey;
for (var i = 1, ii = arguments.length; i < ii; i++) {
var obj = arguments[i];
if (obj) {
var keys = Object.keys(obj);
for (var j = 0, jj = keys.length; j < jj; j++) {
var key = keys[j];
dst[key] = obj[key];
}
}
}
setHashKey(dst, h);
return dst;
}
- 关于IE8不支持Object.keys()的处理
- IE8不支持Object对象的解决方案
- IE8不支持rgba()的处理方法
- JavaSrcipt的Object.keys()
- IE8对象不支持js方法keys() es5-shim
- IE8及以下不支持HTML5标签的处理
- 关于IE8以及以下版本不支持媒体查询的解决方案
- Object.keys()方法的使用
- eWebEditor不支持IE8的解决方法
- IE8不支持js的解决方法
- eWebEditor不支持IE8的解决方法
- IE8不支持canvas的解决方法
- Object.keys()
- Object.keys()
- Object.keys()
- 关于不支持多线程处理的并发问题
- ES6-对象的扩展-Object.keys(),Object.values(),Object.entries()
- 关于ES5之前不支持Object.create(proto)解决办法
- 为Eclipse安装CDT插件
- sqlserver数据库和MySQL数据库的连接的一个JUnit测试小记
- 2,3,5,7倍数 (离散(集合))
- 8-5以下面四个标签(读写器范围内)为例说明二进制树型搜索算法选择电子标签迭带过程
- ZOJ_2104_Let the Balloon Rise
- 关于IE8不支持Object.keys()的处理
- 电信141p122第6题
- 关于clean code 的感想
- 物以类聚 – 对象和类
- HDU2846——Repository
- vs 安装不同office引起编译不通过
- Android NDK c创建java对象
- 腾讯校园招聘 涟漪动画的实现
- [G+smo]openNurbs相关的CAD文件格式转换