Javascript/JQuery作用域
我在Javascript/Jquery中有两个函数,我将属性传递给一个函数,然后再传递给另一个函数 我遇到的问题是,第一个函数中的属性已填充,但第二个函数中的属性定义不足Javascript/JQuery作用域,javascript,jquery,Javascript,Jquery,我在Javascript/Jquery中有两个函数,我将属性传递给一个函数,然后再传递给另一个函数 我遇到的问题是,第一个函数中的属性已填充,但第二个函数中的属性定义不足 ExecuteSQL: function (sql, onSuccess) { try { if (this.Database != null) { this.Database.transaction(function (tx) {
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范围内的值,但在事务范围内为空
任何帮助都会很好
谢谢
Paul.在这种情况下,您只需执行以下操作:
function (d, r) { if (onSuccess) onSuccess(r); }
要明确检查函数,可以执行以下操作:
function (d, r) { if (typeof onSuccess === 'function') onSuccess(r); }
由于
onSuccess
是一个变量,它保存在函数ExecuteSQL
的作用域中定义的函数引用,因此您只需在回调中访问它,它不作为实例的属性关联,因此this.onSuccess
不会获取任何内容(事实上,this
不是ExecuteSQL
函数中的this
。您好,谢谢,我以前尝试过,但也可以让它工作,但这是因为另一个JS问题。谢谢。