javascript - 为什么我收到此错误 : Uncaught TypeError: this. createLink is not a function at new Link at <anonymous>1 :9?

标签 javascript jquery dom

我收到此错误:未捕获类型错误: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/

相关文章:

javascript - 这个范围随着继承而丢失

javascript - jQuery - 在 jQuery.ajax().done() 中更新点击图像

javascript - 在没有状态的情况下使用 React

javascript - 包含 JS 文件时声明 MIME 类型很重要吗?

javascript - 使用 `.childNodes` 从 javascript 访问 HTML DOM 元素

javascript - 用于在 javascript 中的单词边界上包装 span 标记中每个单词的正则表达式

javascript - html css 和 js 不工作

javascript - 自定义 slider AS3 声音搜索

javascript - 返回父元素jquery中的输入值

javascript - 根据页面更改附加到 HTML 标记的 CSS?