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);
我想在对象内部有一个函数,以便在调用它时可以返回一个由每个成员的值组成的字符串。在这种情况下,这里是
a
和c
。现在发生了什么,函数中的所有内容我的意思是代码在浏览器中打印,而不仅仅是返回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/