プリミティブな JavaScript 値をラップしてオブジェクトにすることで発生するオーバーヘッドは、あるとすればどのようなものですか?
例えば:
> var x = Object(12);
undefined
> typeof x
"object"
> ({}).toString.call(x);
"[object Number]"
対
> var y = 12;
undefined
> typeof y
"number"
> ({}).toString.call(y);
"[object Number]"
質問の理由: JavaScript と Java コード (後で Javascript コードにコンパイルされる) の間で値を変換する GWT コードを使用しています。Java は型を重視し、GWT JSNI (相互運用メソッド) はプリミティブとオブジェクトをサポートするため、なぜ「ボックス化された」プリミティブを返さないのか疑問に思っていました (たとえば、Object(12) は 12 のボックス化バージョンです)。
答えは、私が期待していた明確な速度です。それがそれほど深刻になるとは思いませんでしたが、パフォーマンスに深刻な代償を払うことができるか、支払うことができる場合は、ボックス化された Javascript プリミティブを明らかに避けてください。(Janが言及しているように、メソッド呼び出しからのオーバーヘッドがこれを反転させるという警告があります)