Node APIの実装でsnippet_1が気付きました。 Snippet_2は私によって書かれました。私はそれらの間に大きな違いは感じません。実際にはvalueOf()
機能を使用する意味はありますか? そしてまた、我々はあなたがオブジェクトラッパーを持っている場合は[Function: valueOf]
javascriptのvalueOf()の意味
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);
}
elseケースではどうなりますか?いくつかのコンテキストでこれを見つけた実装をリンクしてください。 – Bergi
本当に 'const valueOf = typeof value.valueOf ==" function "だったはずですか? value.valueOf():null'、それ以外の場合、カスタム 'valueOf'データプロパティを持つオブジェクトでは失敗します。 – Bergi
"*私はそれらの間に大きな違いは感じません。*" - 違いは明白ではありませんか? 2つのスニペットは非常に異なるものです。あなたは本当にそれらがすべての可能な価値について同じ結果を持っていると思いますか? – Bergi