function Cons()
    {
        this.a = "variable a";
        this.callme = function callme()
        {
            var str = "";
                for(var x in this)
                {
                    str += this[x] + " ";
                }
            return str;
        }
    }

    var obj = new Cons();

    obj.c = "variable 2";

    var fin = obj.callme();
    document.write(fin);


我想在对象内部有一个函数,以便在调用它时可以返回一个由每个成员的值组成的字符串。在这种情况下,这里是ac。现在发生了什么,函数中的所有内容我的意思是代码在浏览器中打印,而不仅仅是返回str的值。

我了解的是,for-in循环中的this [“ callme”]部分返回整个代码,同时它也是一个变量。那么如何解决这个问题。

我是javascript新手,请帮助我。

最佳答案

如果要避免打印函数主体,请检查该属性是否为函数,并仅打印其名称:

this.callme = function callme()
    {
        var str = "";
            for(var x in this)
            {
                if ('function' === typeof this[x]) {
                    str += x + " ";
                } else {
                    str += this[x] + " ";
                }
            }
        return str;
    }

关于javascript - 在对象内部使用for-in循环访问其成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19936104/

10-11 06:07