1
我注意到其中一個Node API的實現中的snippet_1。 Snippet_2已由我撰寫。我覺得他們之間沒有太大的區別。使用valueOf()
函數真的有什麼意義嗎? 而且,我們可以看到一個稱爲valueOf
屬性,它會返回[Function: valueOf]
valueOf()在javascript中的意義
Snippet_1
Buffer.from = function from(value, encodingOrOffset, length) {
const valueOf = value.valueOf && value.valueOf();
if (valueOf !== null && valueOf !== undefined && valueOf !== value)
return Buffer.from(valueOf, encodingOrOffset, length);
}
Snippet_2
Buffer.from = function from(value, encodingOrOffset, length) {
if (value !== null && value !== undefined)
return Buffer.from(value, encodingOrOffset, length);
}
在其他情況下會發生什麼?您能否將您在某些情況下找到的實現鏈接起來? – Bergi
它真的應該是'const valueOf = typeof value.valueOf ==「function」? value.valueOf():null',否則失敗於具有自定義'valueOf'數據屬性的對象。 – Bergi
「*我覺得他們之間沒有太大的區別。」「 - 差別不明顯嗎?這兩個片段做了非常不同的事情。你真的認爲他們對所有可能的價值有相同的結果嗎? – Bergi