首页 > Web开发 > 详细

js对象中的属性检测

时间:2015-08-17 12:13:41      阅读:272      评论:0      收藏:0      [点我收藏+]

最近项目里遇到一个问题,页面加载时候对window对象进行渲染,渲染过程中对window增加了一个对象obj,之后又加载一个文件,向obj增加了一个属性para,但这个过程是异步的。

之后需要检测window是否有obj对象,而obj对象是否有para属性。由于是异步的。执行这个操作时候可能并没有渲染至para上,这时候需要使用if..else..进行另一套操作。

这时候遇到一个问题,如何判断window对象是否有obj对象,且obj对象是否有para属性?

  1. 之前使用的是‘obj‘ in window 这样的判断。但带我的大大说这样对系统性能并不是很好,希望我能用另外的方式实现。

  2. 查阅后定位在hasOwnProperty操作上,使用window.hasOwnProperty(‘obj‘) && window.obj.hasOwnProperty(‘para‘),进行了判定。

    但这种方法有一个问题:只能判断自有属性是否存在,不能判断继承属性。

  3. 使用undefined判断:window.obj !== undefined;

    使用这方法可以判断自有属性和继承属性,但当obj值为undefined时候,失效。

  4. 使用条件语句直接判断if(!!window.obj.para).

    但使用这种方法,如果属性值为undefined,null,"",0,时候,返回false





参考:http://www.3lian.com/edu/2013/05-20/70754.html

js对象中的属性检测

原文:http://5052416.blog.51cto.com/5042416/1685163

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!