gpt4 book ai didi

Javascript - 函数不会从另一个函数运行

转载 作者:行者123 更新时间:2023-12-01 02:03:10 26 4
gpt4 key购买 nike

我有一个名为 this.create() 的函数

this.create = function() {
var validate = this.validate();

if (validate === false) {
return;

} else if (document.getElementById("nameID").value == "") {

alert("Enter an ID");
} else {
this.runMapping();

$.post('http://*************', {

}, function(data) {

var results = $.parseJSON(data);

if (results.status == "fail") {
alert('FAILED');
} else {
ID = (results.data[0].nameID);

alert("SUCCESS");
this.setDate();


}
});
}
}

另一个函数名为this.setDate() :

this.setDate = function() {
alert("In date");

$.get('http:**********',
function(data) {
var results = $.parseJSON(data);
date = (results.data[0].date);
return;
}
)
}

现在,如果我输入 this.setDate()在它自己的按钮上它工作正常,但是当 this.create() 时它拒绝运行被调用,即使 alert("SUCCESS")this.create() 中收到警报功能。

我应该补充一点,我是 JS 的相对论新手,所以如果这是我犯的一个简单错误,请原谅我。我还注意到this.runMapping()this.create() 中工作正常.

最佳答案

这是因为 this 现在是您调用 this.setDate(); 的函数的上下文,并且其中没有这样的函数。

使用箭头函数或将 this 引用保存到变量,并按照该引用的方式调用您的函数

var that = this;
this.create = function() {
....
that.setDate()
...

关于Javascript - 函数不会从另一个函数运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364729/

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