Javascript 为什么我的valueOf()方法不返回该值?
我对对象的valueOf()方法有点小问题。 我有一个数组,里面有对象和对象文字。 假设它是Javascript 为什么我的valueOf()方法不返回该值?,javascript,dom,Javascript,Dom,我对对象的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.va
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()进行反注释时,也会得到“name”而不是SomeBook。然而,如果我使用
editInputs[0].value = book.name;
它插入SomeBook
为什么??我不想把每个字段都写在一行中
提前谢谢
属性
是包含属性名称的字符串
valueOf
提供该属性的基本值,它仍然是一个包含属性名称的字符串
如果要使用该字符串获取与存储在property
中的字符串匹配的属性名称值,则需要使用:
book[property]
for
循环中的变量只是一个字符串valueOf()
只返回对象的原语值,但对于字符串,只返回字符串
您必须执行book[property]
操作。没有比这更好的方法了。而不是
editInputs[i].value = property.valueOf();
你应该使用
editInputs[i].value = book[property];
如果
property
是book
对象的属性,则只需调用:
book[property]
获取它的值,因为返回指定对象的基本值,正如您在文档中看到的那样。您真的要求
book[property]
?嗯,谢谢,您完全正确。所以for循环不传递整个属性?但是为什么呢?我能让它这样做吗?@Silver\u Bear-因为这就是中的的要点。如果需要该值,请使用。