以前在js-object这个分类里面也写过keys相关的api
在JavaScript1.8.5中,加入了原生的Object.keys这个api
Object.keys(obj);
/*简单举例*/
Object.keys({"A":"a","B":"b"}); //["A","B"]
兼容性写法:
if(!Object.keys){
Object.keys = (function(){
var hasOwnPrototype = Object.prototype.hasOwnPrototype,
hasDontEnumBug = !({toString:null}).propertyIsEnumerable('toString'),
dontEnums = [
'toString',
'toLocalString',
'valueOf',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength = dontEnums.length;
return function(obj){
if(typeof obj !== 'object' && typeof obj !== 'function' || obj === null){
throw new TypeError('Object.keys called on non-object')
}
var result = [];
for(var prop in obj){
if(hasOwnProperty.call(obj,prop)){
result.push(prop);
}
}
if(hasDontEnumBug){
for(var i =0;i<dontEnumsLength;i++){
if (hasOwnProperty.call(obj, dontEnums[i])){
result.push(dontEnums[i])
}
}
}
return result;
}
})
}
浏览器支持情况:
- 大小: 13.2 KB
分享到:
相关推荐
离线安装包,亲测可用
离线安装包,亲测可用
ruby-1.8.5-24.el5.x86_64.rpm
标题中的"utorrent[1].v1.8.5.bjtu.new.exe"指的是μTorrent的一个特定版本,μTorrent是一款非常流行的BitTorrent客户端软件。它主要用于下载和分享大型文件,如电影、音乐、软件和游戏,通过P2P(点对点)技术实现...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
jquery-ui.min.js 1.8.5
离线安装包,亲测可用
在使用spring mvc时,ajax传输json格式的数据时,@ResponseBody, 会出现406错误,导入此包可解决,或者导入jackson-core-asl-1.9.13+jackson-mapper-asl-1.9.13jar
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
这个版本号1.8.5的更新可能包含了一些性能优化、新特性的添加或已有问题的修复。下面将详细探讨该源码包中的关键知识点。 1. **微信小程序**:微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,用户无需下载...
离线安装包,亲测可用
官方离线安装包,亲测可用
Subclipse 1.8.5是这个插件的一个特定版本,可能包含了一些性能优化、新功能或对Eclipse和SVN的兼容性改进。 "site-1.8.x"文件是Subclipse的离线安装站点,它是Eclipse插件安装的一种形式。这种站点包含了插件的...
JavaScript 1.8.5 英文第三章 Object的创建与操作对象方法
官方离线安装包,亲测可用
svn客户端工具(小乌龟) TortoiseSVN-1.8.4.24972-x64-svn-1.8.5.msi 命令行工具 Slik-Subversion-1.8.5-x64.msi 环境变量配置 有问题的童鞋可以留言,大家共同学习!
TortoiseSVN为用户提供了一系列的特性,包括但不限于: - 图标重载,以直观方式展示文件状态; - 强大的右键菜单支持,在资源管理器中直接进行版本控制操作; - 支持拖放操作,简化了文件的版本控制流程; - 配置...
离线安装包,亲测可用
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
TortoiseSVN-1.8.4.24972-x64-svn-1.8.5 中文语言包64位