나의 미숙함을 용서해야하지만 여기에 문제가있다. 그들 중 1 명과 함께 2 개의 함수가있다 .getJSON과 첫 번째 함수의 getJSON 콜백 내에서 2 번째 함수를 호출해야한다. .. 나는 많은 어려움을 겪고있다.자바 스크립트, 스코프 문제 ... 자바 스크립트에 익숙하지 않다
다음은 현재 진행중인 작업을 단순화 한 것입니다. 문제는 .getJSON의 콜백 함수에
MyDialog.Widget.prototype._myFunction1 = function(data) {
var self = this;
var renderEntry = function(tr,booltf) {
$('<a href="javascript:{}"> </a>')
.addClass("iconbutton")
.appendTo(tr.insertCell(0))
.click(function() {
$.getJSON(
"/command/button",
null,
function(data) {
self.myFunction2(); //self isn't in scope?
//this.myFunction2(); //this is actually 'this' for XHR request
},
"json"
);
});
//more code here (including the invoking of renderEntry()
}
MyDialog.Widget.prototype.myFunction2 = function()
{
//Ton of code
}
, 나는 myFunction2를 호출 할하지만 난 'this.myFunction2을()'를 사용 ... 그것을 전화를받을 수 없습니다 나는 액세스를 시도하고있다 XHR 요청 내에서 'myFunction2'(방화 광을 통해 보이는 것)이며, 내가 만든 범위의 것이 아니기 때문에 이전에 만든 var 'self'를 사용하면 작동하지 않습니다. 방화 광은 어떤 변수도 표시하지 않습니다. 콜백 함수 내부에서는 'self'를 사용하고, 시도해도 그냥 작동하지 않습니다.
아이디어가 있으십니까? 더 이상의 정교화가 필요하지 않습니까?
'self'가 범위에 없다면 'self.something'을 시도 할 때 오류가 발생합니다. 어쩌면 당신 문제는 다른 것일까요? – hugomg