【问题标题】:Discover what methods javascript object has发现 javascript 对象有哪些方法
【发布时间】:2014-03-07 13:29:32
【问题描述】:

我有一个渲染得很好的页面。页面上有一个控件,我想将可见性设置为隐藏。我可以很好地处理对象,但是当我开始使用我认为非常典型的方法时,例如:

.setVisible(false);

.css("visibility", "hidden");

我得到对象不支持方法错误。

现在为了解决我的可见性问题,控件包含一个 div,所以我只是将 div 设置为隐藏。

$('#footer_statecode').hide();

我的问题是,我将如何发现对象支持的方法。

我的谷歌搜索很接近,比如这个SO 帖子,但在这些例子中,这个人有一个他们正在寻找的特定方法。我有兴趣看到所有可用的东西......而且它不必通过 alert();在不同的浏览器开发者工具 (F12) 中使用一些功能就可以了。

再次感谢您分享您的知识。

【问题讨论】:

  • 在 Firefox 中,只需在控制台中输入 $('#footer_statecode').,就会出现方法列表。我不确定 Chrome。
  • var support = "method" in obj;
  • @Andy 有趣的是...对于我在 IE 和 Chrome 中的 $('#footer_statecode') 在 F12 控制台中导致了全面的对象探索,而 Firefox 只给了我 []??无论如何,它如你所说。谢谢!
  • @A.Wolff 我在您的评论中遗漏了什么吗?如果您知道要查找的内容,那不是一种很好的简洁方法吗?...我不知道。

标签: javascript jquery


【解决方案1】:

你可以使用它。它不包含内置的 JavaScript 方法(例如 Array.prototype.push)

var methods = [];
for (var prop in object) {
  if (typeof object[prop] === "function") {
    methods.push(prop);
  }
}

【讨论】:

  • 我不是故意检查
【解决方案2】:

你可以这样找到它:

function getMethods(prop)
{ 
    var res = [];
    for(var prop in x) {
        if(typeof x[prop] == 'function') {
            res.push(prop);
        }
      }
        return res;
    }

你也可以看看Object.prototype.hasOwnProperty()

【讨论】:

  • 您在每次迭代时将res 设置为一个空数组。您也在循环内部返回——这将只检索一种方法。
猜你喜欢
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2010-11-11
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多