私はJavaScriptをES6
とbabel
を使用しています。 しかし、私は は最終的に、私はので、私はIE8では、適用メソッドが機能しません
var params = [ level,]
var concat = Function.prototype.bind.call(params.concat, Array);
var paramsConcated =concat.apply(params, args)
に
const params = [
level,
].concat(...args)
から置き換えるソリューション
var log = Function.prototype.bind.call(console.log, console);
log.apply(console, ["this", "is", "a", "test"]);
このリンクで
console.log.apply not working in IE9
を見つけ動作しないこと適用されます知っていました
しかしそれはouを印刷しましたこういうの
function Array() { ... }, [second arg...], [third arg..]
常に最初の引数にArray(){...}を表示します。
私は間違いがありますか?
EDIT 1: 出力については言及しませんでした。私はparamsConcatedを[level、args [0]、args [1]、...、args [n]]にしたいと思っています。
EDIT 2: ビルドした後、params.concat(... argsが)concat.apply(params.args)に置き換えられます。 だから、私は3つのドットを使うべきではありません。
してください[編集]あなたの質問コードが行うことになっているものの記述を含むようにします。希望の出力は何ですか? – nnnnnn
IE8で '.apply()' *が動作しないと思っていますが、何がうまくいかないのかを定義しておらず、代わりに解決策だと思いました。元の問題に戻るのはどうですか? '.apply()' *は動作しますが、ES3 +とは異なるES3に従って動作します。 –
'Function.prototype.bind.call(console.log、console)'は 'console.log.bind(console)'とまったく同じです。 'Function.prototype.bind.call(params.concat、Array);'、必要であれば 'params.concat.bind(Array)'とまったく同じです。 –