我收到此错误:未捕获类型错误:this.createLink 不是函数 在 JavaScript 中的新 Link 中,Paragraph 类工作得很好。
class Paragraph {
constructor(text) {
this.text = text;
return this.createParagraph();
}
createParagraph() {
var paragraph = document.createElement('p');
paragraph.appendChild(document.createTextNode(this.text));
return paragraph;
}
}
class Link extends Paragraph {
constructor(text, link) {
super(text);
this.link = link;
return this.createLink();
}
createLink() {
var aLink = document.createElement('a');
aLink.appendChild(document.createTextNode(this.text));
aLink.href = this.link;
return aLink;
}
}
我正在尝试执行以下命令:var a = new Link("Text","google.com");作为测试。
最佳答案
因此,您遇到此问题的原因是构造函数的一个奇怪属性。
这段代码:
constructor(text) {
this.text = text;
return this.createParagraph();
}
导致 Link 构造函数中的“this”实际上是 createParagraph
的结果。
老实说,我不知道为什么父构造函数会这样做,但是从两个构造函数中删除“返回”应该不会导致错误。
一般来说,构造函数不需要返回任何内容,您正在创建的实例默认从 new
运算符“返回”。
关于javascript - 为什么我收到此错误 : Uncaught TypeError: this. createLink is not a function at new Link at <anonymous>1 :9?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60555587/