如何列出 javascript 对象的函数/方法? (这可能吗?)

发布于 2024-10-05 23:44:43 字数 249 浏览 4 评论 0原文

这个问题的措辞有意像这个问题

我什至不知道这是否可能,我记得隐约听说过一些关于 JS 中不可枚举的属性。

不管怎样,长话短说:我正在 js 框架上开发一些东西,我没有文档,也无法轻松访问代码,这将极大地帮助我了解我可以用我的对象做什么。

This question is intentionally phrased like this question.

I don't even know if this is possible, I remember vaguely hearing something about some properties not enumerable in JS.

Anyway, to cut a long story short: I'm developing something on a js framework for which I have no documentation and no easy access to the code, and it would greatly help to know what I can do with my objects.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我要还你自由 2024-10-12 23:44:43

如果您的项目中包含 Underscore.js,则可以使用 _.functions(yourObject)

If you include Underscore.js in your project, you can use _.functions(yourObject).

多像笑话 2024-10-12 23:44:43

我认为这就是您正在寻找的:

var obj = { locaMethod: function() { alert("hello"); }, a: "b", c: 2 };
for(var p in obj)
{
    if(typeof obj[p] === "function") {
      // its a function if you get here
    }
}

I think this is what you are looking for:

var obj = { locaMethod: function() { alert("hello"); }, a: "b", c: 2 };
for(var p in obj)
{
    if(typeof obj[p] === "function") {
      // its a function if you get here
    }
}
甜中书 2024-10-12 23:44:43

您应该能够枚举直接在对象上设置的方法,例如:

var obj = { locaMethod: function() { alert("hello"); } };

但大多数方法都属于该对象的原型,如下所示:

var Obj = function ObjClass() {};
Obj.prototype.inheritedMethod = function() { alert("hello"); };
var obj = new Obj();

因此在这种情况下,您可以通过枚举 Obj.prototype 的属性来发现继承的方法。

You should be able to enumerate methods that are set directly on an object, e.g.:

var obj = { locaMethod: function() { alert("hello"); } };

But most methods will belong to the object's prototype, like so:

var Obj = function ObjClass() {};
Obj.prototype.inheritedMethod = function() { alert("hello"); };
var obj = new Obj();

So in that case you could discover the inherited methods by enumerating the properties of Obj.prototype.

旧伤慢歌 2024-10-12 23:44:43

您可以使用以下内容:

var obj = { locaMethod: function() { alert("hello"); }, a: "b", c: 2 };


for(var p in obj)
{
    console.log(p + ": " + obj[p]); //if you have installed Firebug.
}

You can use the following:

var obj = { locaMethod: function() { alert("hello"); }, a: "b", c: 2 };


for(var p in obj)
{
    console.log(p + ": " + obj[p]); //if you have installed Firebug.
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文