2016-05-23 9 views
1

は私が受け取った次のコードを持っています。私は次のエラーを取得する:スプレッドオペレータの代替

function sortByProp(...props) { 
        ^^^ 
SyntaxError: Unexpected token ... 

私はこのためのポリフィルがあるかどうかを確認するために代替があるかどうかを確認するためにhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operatorを訪れたが、私はものを見つけることができません。

私はこれらの2を使用してこの関数を呼び出す:

.sort(sortByProp('key', 'k', a)) 
      .sort(sortByProp('key', 'n', b)); 

どのように私はそれはので、これはすべてのブラウザで動作することができますか?

+0

'を削除します。... props'、' var props = arguments; 'を追加しますか?実際には、配列に変換する必要があるかもしれないので、 '[] .slice.call(arguments);' –

答えて

3

構文をポリフィルすることはできません。それだけでは機能しません。構文照合は、ポリフィルからのロジックが発生する前に行われます。できることはBabelのようなコンパイラを使ってES2015コードをES5に変換することです。または、あなたの関数を書き換えることができますarguments

function sortByProp() { 
    var props = [].slice.call(arguments); 
    const callback = props.pop(); 
    return function(a, b) { 
    const v1 = retrieve(props, a); 
    const v2 = retrieve(props, b); 
    return callback(v1, v2); 
    } 
} 
+0

まさに私が感謝のために探していたものです! – user2924127