javascript for in语句浏览器兼容问题简单介绍
分类:实例代码
关于for in语句的基本用法这里就不多介绍了,具体可以参阅javascript for in语句一章节。
下面首先看一段代码实例:
var obj={ url:"pipipi.net", webName:"前端教程网", address:"青岛市南区" } for(var prop in obj){ console.log(prop+":"+obj[prop]) }
上面的代码可以遍历对象的自定义属性,但是它并没有能够遍历对象的内置属性或者方法,比如toStirng()和valueOf()方法并没有被遍历到。那么如果重写这些方法以后会是怎么结果呢,代码实例如下:
var obj={ url:"pipipi.net", webName:"前端教程网", address:"青岛市南区", toString:function(){return "前端教程网欢迎您"} } for(var prop in obj){ console.log(prop+":"+obj[prop]) }
上面的代码中,浏览器兼容性就出来了,结论如下:
(1).IE9以下浏览器不会输出toString()方法。
(2).标准浏览器能够输出toString()方法。
再介绍一个和浏览器兼容无关的:
for in语句也可以遍历原型链上的自定义属性,代码如下:
Object.prototype.clone=function(){return "前端教程网欢迎您"} var obj={ url:"pipipi.net", webName:"前端教程网", address:"青岛市南区", } for(var prop in obj){ console.log(prop+":"+obj[prop]) }