为了账号安全,请及时绑定邮箱和手机立即绑定

ES6编译出的ES5代码怎么理解

ES6编译出的ES5代码怎么理解

手掌心 2018-12-28 22:14:33
我在babel的在线编译器中编译ES6function push( ...args){  console.log(...args)}push(1,2,3)编出来的结果:"use strict";function push() {  var _console;  (_console = console).log.apply(_console, arguments);}push(1, 2, 3);我的问题是为什么这里把console.log写的这么复杂?编译出来的代码一定是比较推荐的写法吧,靠学习编译出的ES5代码学习最佳实践,这样可行吗?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

显而易见,这样是不能拿来学习ES5的,不过作为扩展眼界也是一种不错的选择。

编译出来的代码之所以复杂,是因为其要做到类似于ES6中的功能

lz的ES6代码的功能有


函数内作用域let

扩展运算符

console在作用域下输出

但是,let和扩展运算符在ES5中并没有,需要用其他方式去实现,


function push() {

  var _console; // 此处_console,包括下面的apply是用于console的作用域内隐式let

    // arguments 是为了完成扩展运算符

  (_console = console).log.apply(_console, arguments);

}


查看完整回答
反对 回复 2019-01-23
  • 1 回答
  • 0 关注
  • 467 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信