[英]Why does my valueOf() method not return the value?
我在使用对象的valueOf()方法时遇到了一些问题。 我有一个包含对象和对象文字的数组。 假设是var Books = [ {"name": "SomeBook"}, {"name": "SomeOtherBook"} ]
。 现在我想通过以下方式将所有文字写入某些文本输入中
var i = 0;
book = Books[0];
for (var property in book) {
if (book.hasOwnProperty(property)) {
editInputs[i].value = property.valueOf();
//console.log(property.valueOf());
}
i++;
}
为什么我的输出是对象的名称? 当我注释log()时,我也会得到“名称”而不是SomeBook。 但是,如果我使用
editInputs[0].value = book.name;
它插入SomeBook
。
为什么? 我不想将所有字段都写在一行中...
提前致谢!
property
是一个包含属性名称的字符串。
valueOf
为您提供该值的原始值,该值仍然是包含属性名称的字符串。
如果要使用该字符串来获取与存储在property
中的字符串匹配的属性名称的值,则需要使用:
book[property]
for
循环中的变量只是一个字符串。 valueOf()
仅返回对象的原始值,但是对于字符串,只需将字符串取回即可。
您必须改为book[property]
。 确实没有更好的方法。
代替
editInputs[i].value = property.valueOf();
你应该使用
editInputs[i].value = book[property];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.