gpt4 book ai didi

javascript - 在子类的回调方法中调用父类方法

转载 作者:行者123 更新时间:2023-11-28 17:46:36 25 4
gpt4 key购买 nike

我有两个类,类 B 扩展了类 A。在类 B 中,我正在执行一些 Canvas 操作,因此需要调用回调来加载图像。在回调中我想调用父类的相同方法。但是,如果我将这行代码放入回调中,则会出现语法错误“Uncaught SyntaxError:'super'关键字意外出现”。知道如何在回调中提供上下文以便我可以调用父类的方法吗?

汤姆干杯

class A{
super(){
}

myMethod(){
console.log("mymethod of A");
}
}



class B extends A{
constructor(){
super();
}


myMethod(){

var canvas = window.document.getElementById("myCanvas");
var context = canvas.getContext('2d');

context.canvas.width = 200;
context.canvas.height = 100;
context.fillStyle = "#ffff00";
context.font = "15px Arial";

context.fillText("Hello World!", 0, context.canvas.height);
var image = document.createElement("img");
image.src = canvas.toDataURL("image/png");
this.img = image;

image.onload = async function(){
super.myMethod();// having thise line in the code results in "Uncaught SyntaxError: 'super' keyword unexpected here"
console.log("callback");
}
}
}

最佳答案

您需要使用 arrow function这里,它保留了定义它的方法的 thissuper:

myMethod(){

image.onload = () => {
super.myMethod();
};
}

请注意,没有理由使事件处理程序异步

关于javascript - 在子类的回调方法中调用父类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com