function.call()
という関数にインデックス変数をthis
として渡したいとします。Javascript Function.prototype.call()はプリミティブの値を渡します
var fun = function() {
console.log(this);
}
fun.call(1);
// -> Number {[[PrimitiveValue]]: 1}
だから、明らかにプリミティブ整数1
は、呼び出された関数へのプリミティブとして渡されていません。
Function.prototype.call()のMDNによると "[...]プリミティブ値はオブジェクトに変換されます。"
プリミティブ整数としてfun()
に渡す方法はありますか?上記の例1
で
[XY問題](http://xyproblem.info/)のように表示されます。これを行うことで何を達成することを望みますか? – Quentin
javascriptの動作がプリミティブをオブジェクトに変換するのであれば、それを避ける方法がわかりませんが、独自のJavaScriptエンジンを書くのは簡単ではありません...しかし、そのステートメントは厳密なモードであることを暗示しています –
なぜ気になりますか'this'がプリミティブなのか?それがあなたが望むものなら、それをパラメータとして渡すのはなぜですか? –