gpt4 book ai didi

javascript - 类型错误 : this. getResults(...) 未定义

转载 作者:行者123 更新时间:2023-12-03 02:04:36 27 4
gpt4 key购买 nike

我已经实现了一个 javascript 类,并且使用 this.loadResults('cpu').bind(this) 来加载特定结果,该结果可以根据字符串进行区分 - 例如 cpuother - 输入。

在下面找到一个最小可行的示例:

import $ from 'jquery';

//class Builder {
constructor() {
this.events();
}

events() {
$(".btn.btn-primary.btn-sm").on("click", this.ourClickDispatcher.bind(this));
}

// methods
ourClickDispatcher(e) {
var currentButton = $(e.target).closest(".btn.btn-primary.btn-sm");

if (currentButton.data('exists') == 'cpu') {
this.loadResults('cpu').bind(this)
}

if (currentButton.data('exists') == 'other') {
this.loadResults('other').bind(this)
}
}

loadResults(part) {
console.log(`loadResults ${part} clicked`)
//result logic ...
}
//}

//export default Builder;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" data-exists="cpu" class="btn btn-primary btn-sm">
CPU
</button>

当我在 Firefox 中运行脚本时,收到以下错误消息:

TypeError: this.loadResults(...) is undefined[Learn More]  scripts-bundled.js:26481:9
ourClickDispatcher https://link.com/js/scripts-bundled.js:26481:9
bound ourClickDispatcher self-hosted:915:17
jQuery.event.dispatch https://link.com/js/scripts-bundled.js:5274:16
jQuery.event.add/elemData.handle

有什么建议我为什么会收到此错误吗?

感谢您的回复!

最佳答案

我还不确定,但为了确认,当您将“this”绑定(bind)到 this.loadResults('cpu') 时,我假设 loadResults 应该返回一个函数。它是否可能返回未定义,因为您不打算让它返回某些内容?

请问为什么要将“this”绑定(bind)到loadResults的返回值?也许您根本不需要那里的绑定(bind),因为您正在调用 loadResults 方法样式。即使没有绑定(bind)“this”,loadResults 也可以访问“this”

我这样写没有意义

this.loadResults('other').bind(this)

除非您希望 this.loadResults('other') 返回一个函数,并且您将“this”绑定(bind)到该函数。但我认为你没有这样做,因为之后你没有用它做任何事情。

我的猜测是去掉 .bind(this)

关于javascript - 类型错误 : this. getResults(...) 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49850670/

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