在玩ES6之后,我真的开始喜欢新的语法和功能了,但我确实对类有疑问.
新的ES6类是旧原型模式的语法糖吗?或者幕后还有更多的事情发生在这里?即:
class Thing {
//... classy stuff
doStuff(){}
}
Run Code Online (Sandbox Code Playgroud)
vs:
var Thing = function() {
// ... setup stuff
};
Thing.prototype.doStuff = function() {}; // etc
Run Code Online (Sandbox Code Playgroud) 在Node.js 4.2.1上运行以下代码时:
'use strict';
var util = require('util');
class MyClass {
constructor(name) {
this.name = name;
}
}
function MyDerived() {
MyClass.call(this, 'MyDerived');
}
util.inherits(MyDerived, MyClass);
var d = new MyDerived();Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
constructor(name) {
^
TypeError: Class constructors cannot be invoked without 'new'
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以从ECMAScript 6类继承旧式JavaScript"类"?并且,如果可能的话,那怎么样?