[英]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.