JavaScript ES6 super Keyword
在 ES6 中新增的 super 關鍵字 (keyword),在物件的方法 (method) 中使用時,super 會指向父類別 (的 prototype),方便你可以存取父類別中的。
例子:
var parent = {
foo() {
console.log('Hello from the Parent');
},
a: 'a of parent'
}
var child = {
foo() {
console.log('Hello from the child');
super.foo();
console.log(this.a);
console.log(super.a)
},
a: 'a of child'
}
Object.setPrototypeOf(child, parent);
child.foo();
上面依序會輸出:
Hello from the child
Hello from the Parent
a of child
a of parent
需要特別注意的是 super 只能用在 ES6 新的 method 語法 中,用在傳統的函數 function 語法中會引發錯誤:
var child = {
foo: function() {
super.foo();
}
}
// Uncaught SyntaxError: 'super' keyword unexpected here