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

我在babel的在线编译器中编译ES6

function 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代码学习最佳实践,这样可行吗?


手掌心
浏览 469回答 1
1回答

慕雪6442864

显而易见,这样是不能拿来学习ES5的,不过作为扩展眼界也是一种不错的选择。编译出来的代码之所以复杂,是因为其要做到类似于ES6中的功能lz的ES6代码的功能有函数内作用域let扩展运算符console在作用域下输出但是,let和扩展运算符在ES5中并没有,需要用其他方式去实现,function push() {  var _console; // 此处_console,包括下面的apply是用于console的作用域内隐式let    // arguments 是为了完成扩展运算符  (_console = console).log.apply(_console, arguments);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript