关于对象API

来源:17-9 其它知识点-代码演示

王耶啵的肖兔兔

2017-11-01

function forEach(obj, fn){
			var key;
			if(obj instanceof Array){
				obj.forEach(function(item, index){
					fn(index, item)
				})
			}else{
				for(key in obj){
					if(obj.hasOwnProperty(key)){
						fn(key, obj[key])
					}
				}
			}
		}

这里为什么要加if(obj.hasOwnProperty(key))这个判断呢?

写回答

2回答

双越

2017-11-01

防止 key 是 obj 原型中的方法,某些浏览器会有这种兼容性问题

0
7
小王子抓猫咪
回复
双越
老师,你自己在课程后面都说了,IE8以下都不用考虑了。这里还需要考虑啥兼容性?Object.keys在IE9及以上都可以用。资料: https://kangax.github.io/compat-table/es5/#test-Object_static_methods_Object.keys_a_href=_https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys_title=_MDN_documentation_img_src=_../mdn.png_alt=_MDN_(Mozilla_Development_Network)_logo_width=_15_height=_13_/_/a_nbsp;
2017-11-04
共7条回复

小王子抓猫咪

2017-11-04

//img.mukewang.com/szimg/59fd73b50001dec914180394.jpg

请放心使用Object.keys吧

0
1
王耶啵的肖兔兔
这是啥意思啊
2017-11-05
共1条回复

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程