gpt4 book ai didi

javascript - 以 html 格式显示对象

转载 作者:行者123 更新时间:2023-12-02 20:15:54 27 4
gpt4 key购买 nike

我正在尝试编写一个对象资源管理器,向用户显示对象的属性和值。我的想法是,将能够深入查看对象中的对象,单击超链接来检查方法的源代码,或者查看属性值。

这是我到目前为止所得到的(jsFiddle)。

问:救命啊!我不知道我在做什么!我注意到的一件事是,我显然没有获得任何 hasOwnProperty 为 true 的属性。另一件事是我需要该函数是递归的。另一个是:我想我记得在某个地方读过一个 JavaScript 函数,它可以获取 JavaScript 函数的文本。

那么,回答你的问题:“问题是什么?”我想我可以说“你能帮我编写这个通用 JavaScript 对象浏览器作为可能的 jQuery 插件吗?”

最佳答案

您的问题非常笼统。针对您的两个具体观点:

为了使您的函数递归,我相信您可以简单地将这段代码从“bodyLog”函数复制到您评论递归的位置。当您将其传递给递归调用时,您需要在“级别”中添加一个。

// $(obj).each(function(index,Element) { // EDIT shouldn't need this iteration, you're inside the loop
result += showObjectsMethodsAndValues(Element,level+1,true);
result += showObjectsMethodsAndValues(Element,level+1,false);
//});

获取函数字符串主体的方法只需在方法对象上调用“.toString()”即可。所以如果你这样做:

var myFun = function(a, b) {
return a+b;
};

alert(myFun.toString());

您将看到打印出的函数主体。对于内置对象,您可能会看到“[native code]”作为函数的主体,而不是真正的 JavaScript 代码。

您没有看到任何 hasOwnProperty 属性的原因是我怀疑 jQuery 对象是否有任何属性。它的所有属性可能都存在于它的原型(prototype)对象中。试试这个:

var myObj = {foo: 1, bar: 2};
myObj.prototype = {baz: 3};

然后在 myObj 上调用您的函数。 Foo 和 bar 应返回 hasOwnProperty true,baz 将返回 false。我相信 jQuery 的所有属性都存在于它的原型(prototype)对象中,因此它们都会返回 false。

关于javascript - 以 html 格式显示对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6317409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com