ETA :이 질문은 링크 된 것과 중복 된 것 같습니다. 개인 변수를 반환하는 방법을 알고 있습니다 (아래 코드 참조).이 질문은 같은 개체 내에서 개인 함수를 호출하는 방법에 대한 것입니다.동일한 개체 내에서 private 함수를 호출 할 수 있습니까?
javascript 관련 정보를 찾는 데 문제가 있습니다. 나는 선언 된 객체를 가지고 있고 그 객체 내에 네 개의 함수 (객체 메소드 3 개와 그렇지 않은 것)를 선언했다. 네 번째 객체 메소드를 객체 메소드로 만들어서 jquery (timer.displayTime();)하지만 그 startIntervalTimer 함수를 사용하면 작동을 멈 춥니 다. 내가 할 수있는 일이 가능한거야?
var startStopTime = function() {
//This function is currently called inside startIntervalTimer();
function displayTime() {
//Display correct time
};
//I WANT SOMETHING LIKE THIS INSTEAD BUT (SEE startIntervalTimer)
this.displayTime = function() {
//Display correct time
}
var intervalTimer;
this.startIntervalTimer = function() {
console.log(timeSetMS);
intervalTimer = setInterval(function() {
if(timeSetMS > 0) {
timeSetMS -= 1000;
displayTime(); //THIS IS WHERE AND HOW IT IS CALLED
this.displayTime(); //THIS IS WHAT I'M GOING FOR, BUT IT WON'T WORK
console.log(timeSetMS);
} else if(timeSetMS <= 0) {
clearInterval(intervalTimer);
console.log("timer stopped");
}
}, 1000
);
}
};
는 다음 JQuery와에 내가 가진 :
var timer = new startStopTime();
$("#timer-container, #timer-label").click(function() {
if(power == "off") {
power = "on";
timer.startIntervalTimer();
} else if (power == "on") {
power = "off";
timer.stopTimer();
}
});
//I want to add this, below
$("#session-length").click(function() {
//Change the display
timer.displayTime();
displayTime(); // This won't work obviously because it's out of scope
});
가능한 복제 [자바 스크립트 : 함수가 객체를 반환은] (http://stackoverflow.com/questions/12272239/javascript-function-returning-an-object) – Terry