標題有點怪異,不太清楚句子中解釋它的最佳方式...JavaScript範圍 - 通過回調已定義的函數
目前有一個有3個函數的對象; func,funcSuccess和funcFailure。 func包含一個jQuery ajax請求,其中this.funcSuccess作爲成功回調函數,funcError作爲錯誤回調函數。 func通過一個回調函數傳回任何成功值,但是這個回調函數需要在funcSuccess代碼中執行。
下面的代碼:
var Obj =
{ func: function (callback) {
$.ajax(
{ type: 'POST'
, url: '/func'
, success: this.funcSuccess
, error: this.funcError
}
)
}
, funcSuccess: function (res) {
// THIS IS WHERE CALLBACK IS NEEDED
callback(res.thing)
}
, funcError: function (res) {
debug(res)
}
}
我不知道是否有一個整潔的方式做到這一點,而不是:
var that = this
$.ajax(
{ type: 'POST'
, url: '/func'
, success: function (res) {
that.funcSuccess(res)
}
, error: this.funcError
}
)
肯定我失去了一些東西很明顯,只是不太與它今天...
這沒什麼幫助,''callback'在'funcSuccess'中仍然是'undefined' - 你需要在那裏明確地傳遞它。 – Bergi