gpt4 book ai didi

Javascript/JQuery 范围

转载 作者:行者123 更新时间:2023-11-28 20:08:02 25 4
gpt4 key购买 nike

我在 Javascript/Jquery 中有几个函数,我将属性传递给一个函数,然后再传递给另一个函数。

我遇到的问题是第一个函数中的属性已填充,但第二个函数中的属性未定义。

ExecuteSQL: function (sql, onSuccess) {                
try {
if (this.Database != null) {
this.Database.transaction(function (tx) {
tx.executeSql(sql, [], function (d, r) {
if (this.onSuccess) this.onSuccess(r);
});
});
}
else {
alert("Could not execute SQL, the database connection is closed.");
}

}
catch (e) {
alert("Failed to execute SQL," + e);
}
},

onSuccess 是 ExecuteSQL 范围内的一个值,但在事务范围内为空。

任何帮助都会很棒。

谢谢保罗。

最佳答案

在这种情况下,你可以这样做:

function (d, r) { if (onSuccess) onSuccess(r); }

只是为了明确检查您可以执行的功能:

function (d, r) { if (typeof onSuccess === 'function') onSuccess(r); }

由于 onSuccess 是一个变量,它保存在函数 ExecuteSQL 范围内定义的函数引用,因此您可以在回调内部按原样访问它,并且它是不作为实例的属性关联,因此 this.onSuccess 不会获取任何内容(事实上 this 不是 thisExecuteSQL 函数内)。

关于Javascript/JQuery 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20412352/

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