簡體   English   中英

為什么我的valueOf()方法不返回值?

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

如果property是您的book對象的屬性,則只需調用:

book[property]

為了獲得其值,因為.valueOf()返回指定對象的原始值,如您在文檔中所見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM