【问题标题】:How to determine if a property exists on a javascript object如何确定javascript对象上是否存在属性
【发布时间】:2015-08-11 00:10:29
【问题描述】:

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

有没有办法确定我引用的对象是否定义了这些函数?

我试过了

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

但如果我从来没有声明过

 mouseover = function() { ... }

在那个对象上,然后代码就在那里中断。

所以我正在寻找一种方法来确定我是否在每个对象上添加了 'var mouseover = function() { ... }'。

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

谢谢。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

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

Mozilla dev link

【讨论】:

  • 那行得通。谢谢!!我到处找。我猜我在搜索错误的术语......
【解决方案2】:

使用反射。例如。: Javascript Reflection

然后很容易编写如下函数: DoesMethodExist = function (object_, methodName){...}

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

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多