Javascript ES 6:无法从旧式对象方法定义中调用“ super”

时间:2018-07-21 11:09:26

标签: javascript ecmascript-6

我只是在学习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'关键字在此处意外”。因此,这里我们只能完全覆盖父方法,而不能调用它。在我看来,这种行为是绝对不一致的。因为这两个定义在我看来都一样!我会误会什么吗?

0 个答案:

没有答案