2017-05-24 8 views
-2

こんにちは私はこの作品をChromeでうまく動作しますが、IE 11では動作しません。 これはES6の構文ですが、あまりよく分かりません。ES6のjsコードがIE 11で動作しません。

var buf2Hex = function(buffer) { 
    //return Array.prototype.map.call(new Uint8Array(5).join('00').concat(buffer.data.toString(16)).slice(-2)).join(''); 

    return Array.prototype.map.call(new Uint8Array(buffer.data), x=>('00'+x.toString(16)).slice(-2)).join(''); 
} 

私が試したが動作しない行です。

IEのためにはどうすればいいですか?

+0

どうしたらうまくいかないのですか?あなたのコンソールに何かエラーがありますか? –

+1

問題は[map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map?v=example)ではないと思います。 IE9、はい、[arrow functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)( '=>()')はES6以降でサポートされていますIEでサポートされていません(しかし、私はあなたがすでにそれを考え出したと思います) –

+0

エラーに関して、私はIEでこれを持っています:エラー:[ng:areq] http://errors.angularjs.org/1.2.16/ng/areq? p0 = MyCtrl&p1 = not%20a%20function%2C%20got%20undefinedこの関数を取り出すと、ページはエラーなくロードされます。 – user3552178

答えて

0
var buf2Hex = function(buffer) { 
    return Array.prototype.map.call(new Uint8Array(buffer.data), function(x) { 
     return ('00' + x.toString(16)).slice(-2); 
    }).join(''); 
    //return Array.prototype.map.call(new Uint8Array(buffer.data), x=>('00'+x.toString(16)).slice(-2)).join(''); 
}