http://www.ecma-international.org/ecma-262/6.0/#sec-class-definitions
14.5 Class Definitions
Syntax
ClassDeclaration[Yield, Default] :
class BindingIdentifier[?Yield] ClassTail[?Yield]
[+Default] class ClassTail[?Yield]
ClassExpression[Yield] :
class BindingIdentifier[?Yield]opt ClassTail[?Yield]
ClassTail[Yield] :
ClassHeritage[?Yield]opt { ClassBody[?Yield]opt }
ClassHeritage[Yield] :
extends LeftHandSideExpression[?Yield]
ClassBody[Yield] :
ClassElementList[?Yield]
ClassElementList[Yield] :
ClassElement[?Yield]
ClassElementList[?Yield] ClassElement[?Yield]
ClassElement[Yield] :
MethodDefinition[?Yield]
static MethodDefinition[?Yield]
;
NOTE A ClassBody is always strict code.
https://chadaustin.me/2012/12/javascript-new-operator-ecma-262/
http://stackoverflow.com/questions/761905/how-will-ecma-262-ecmascript-5-help-you
https://blog.appdynamics.com/engineering/7-ways-es2015-can-improve-your-javascript-programing/
读懂 ES6 官方文档
https://zhuanlan.zhihu.com/p/26812708/
http://www.ruanyifeng.com/blog/2015/11/ecmascript-specification.html
http://www.jianshu.com/p/3bd3a822f989
http://dmitrysoshnikov.com/
https://juejin.im/entry/58e4e048b123db15eb7d212c
http://bubkoo.com/2014/05/28/ecma-262-3-in-detail-chapter-1-execution-contexts/
http://zhouweicsu.github.io/blog/2015/12/04/tc39-process/
http://apsay.com/wap/index-wap2.php?p=1618
http://liubin.org/promises-book/