我只是在学习Javascript和一些新功能ES6等。使用新的ES6样式,我们可以定义两个这样的无类对象:
var parent = {
foo() {
console.log("Parent!");
}
}
var child = {
foo() {
super.foo();
console.log("Child!");
}
}
Object.setPrototypeOf(child, parent);
这里所谓的“ super”正在按预期工作。但是,我们也可以定义 像这样的旧样式中的相同层次结构:
var parent2 = {
foo: function () {
console.log("Parent!");
}
}
var child2 = {
foo: function () {
super.foor(); // <-- Error
console.log("Child!");
}
}
在这种情况下,对“ super”的调用会产生错误“未捕获的SyntaxError:'super'关键字在此处意外”。因此,这里我们只能完全覆盖父方法,而不能调用它。在我看来,这种行为是绝对不一致的。因为这两个定义在我看来都一样!我会误会什么吗?