簡體   English   中英

toString()如何在javascript中工作?

[英]How does toString() work in javascript?

"J" + { toString: function() { return "S"; } }; // "JS"

為什么輸出為“ JS”?

當我做:

 "J" + { someFoo: function() { return "S"; } }; // "J[object Object]"

為什么這也不是“ JS”?

我試圖弄清楚.toString()是如何在第一個塊內使用的。

謝謝

toString是一個特殊函數(在對象的原型中),當需要對象的字符串化模式時調用此函數。

在您的情況下,加法運算符調用對象的toString方法。 從規格

  1. 如果Type(lprim)是String或Type(rprim)是String,則

    一種。 返回由ToString(lprim)和ToString(rprim)串聯而成的字符串。

但是,可以重寫此本機方法,您已經在第一個代碼段中完成了*。 加法運算符僅調用自定義方法,該方法將產生您得到的結果。

在后面的代碼段中, toString僅返回對象的默認值。

您可以在許多情況下看到這種情況,例如alert({})從對象的原型中調用內部toString方法,因為alert需要一個字符串作為參數。

(*更准確:您沒有重寫本機屬性,而是為具有相同名稱的對象創建了一個自己的屬性,該名稱用於代替從原型鏈中搜索本機屬性。

暫無
暫無

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

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