繁体   English   中英

如何确定javascript对象上是否存在属性

[英]How to determine if a property exists on a javascript object

我在javascript中创建了很多Image对象,并将它们全部放置在数组中。 但是,其中一些对象具有mouseover()和mouseout()属性,而有些则没有。

有没有一种方法可以确定我所引用的对象是否已定义那些功能?

我试过了

if (typeof obj.mouseover !== 'undefined')

但如果我从未宣布

 mouseover = function() { ... }

在该对象上,代码就在此处中断。

因此,我正在寻找一种确定是否在每个对象上添加'var mouseover = function(){...}'的方法。

当然,即使没有设置任何对象,我也可以确保每个对象都具有mouseover和mouseout的创建功能,但是如果有另一种方法来检测是否首先设置了该对象,那感觉就像是不必要的痛苦。

谢谢。

您可以通过Object.hasOwnProperty('someMethodName')检查该方法是否存在于对象上

Mozilla开发人员链接

使用反射。 例如: Javascript反映

这样就可以很容易地编写类似的函数:DidMethodExist = function(object_,methodName){...}

遍历object_的所有方法名称,并将它们与methodoName匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM