如何运行 ES6 code with arrow functions in Safari?

How to run ES6 code with arrow functions in Safari?

出于某种原因,运行 在当前 Chrome 或 Firefox 中运行良好的 ES6 代码无法在 Safari 中 运行 - 例如,arrow functions。据我所知,Safari 对 ES6 有很好的支持。有什么需要做的吗?

示例:

var arr = [1,3,5].map((i) => i*i);
console.log(arr);

或者如果它是完整的 .html 文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>

        <script>
            "use strict";

            var arr = [1,3,5].map((i) => i*i);
            console.log(arr);

        </script>
    </body>
</html>

Safari(我用的是9.0.3)一直在给SyntaxError: Unexpected token '>'

基于MDN link,(靠近底部),Safari 尚不支持此功能。

没有arrow-functions需要重写。

Afaik,除了语法之外的唯一区别是 arrow-functions 保留上下文。因此,您需要额外编写一行来绑定上下文并将其与其他参数一起传递。

(不支持arrow-functions也挺好的,这样没有新技术的第三世界就不会被遗忘。)

这更可重用:

array = [2,4,6]
function square(array) {
    array.map(function(item) {console.log(item*item)} )
}
square(array)