Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/JQuery作用域_Javascript_Jquery - Fatal编程技术网

Javascript/JQuery作用域

Javascript/JQuery作用域,javascript,jquery,Javascript,Jquery,我在Javascript/Jquery中有两个函数,我将属性传递给一个函数,然后再传递给另一个函数 我遇到的问题是,第一个函数中的属性已填充,但第二个函数中的属性定义不足 ExecuteSQL: function (sql, onSuccess) { try { if (this.Database != null) { this.Database.transaction(function (tx) {

我在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范围内的值,但在事务范围内为空

任何帮助都会很好

谢谢
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问题。谢谢。