2017-12-19 2 views
-2

시작하기 전에 이미이 주제에 대해 이미 답변 된 질문이 있으며 그 중 하나를 찾았다 고 말하고 싶습니다. 그러나 아직 초보자이기 때문에 답변을 찾을 수 없습니다. 그것은 나를 위해 너무 복잡합니다. 그래서 나는 내 자신의 모범을 보여주고 싶다. 죽은 단순한 예를 들어 그 사실을 바탕으로 이해하려고 노력했다.변수가 JavaScript에서 값을 변경하면 어떻게 감지 할 수 있습니까?

기본적으로 정의 된 값을 가진 이미 존재하는 변수가 값을 변경하면 함수를 실행하고 싶습니다. 이런 식으로 뭔가 : 콘솔에서

내가 콘솔과 유형에 갈 때, 원하는 것은
var testVar = 5; 
function letMeKnow() { 
console.log("The variable has changed!); 
} 

, 내가 letMeKnow() 기능을 실행하려면, testVar = 7 말, 및 인쇄 뭔가 부족합니다. 더 구체적으로 말하자면, JavaScript가 변수가 변경되었음을 감지하고 함수를 자동으로 실행하기를 원합니다. 나는 이것을 Object.observe() 또는 Object.watch()과 함께 사용하는 것을 알고 있었지만,이 것들은 사용하지 않기 때문에 getters와 setters를 사용하여이 작업을 수행해야한다고 생각합니다. 내 질문은이 예제에서 가능한 한 간단하게 유지하려면 어떻게해야합니까?

감사합니다.

+0

getter 및 setter 다음이 – Krishjs

+0

당신을위한 값을 설정하는 함수를 작성 할 수있는 방법입니다 어디에나. 속성을 가진 객체, 값을 확인하는 타이머 또는 다른 선택의 여지가없는 대규모 라이브러리. 변수에 대해 "* 방금 변경했습니다"* 이벤트가 없습니다. – Archer

+0

배우고 이해하려면 읽어야합니다. "그것이 효과가 없다"고 대답한다면 짧고 죽은 간단한 대답이있을 수 있습니다. 게다가, 당신은 올바른 방향으로 읽습니다 (getters setters). 그래서 계속 진행하십시오! – entio

답변

0

처럼 getter/setter이 될 수 사용하는 간단한 예 : 것을 사용

var obj = { 
 
    value: '', 
 
    letMeKnow() { 
 
    console.log(`The variable has changed to ${this.testVar}`); 
 
    }, 
 
    get testVar() { 
 
    return this.value; 
 
    }, 
 
    set testVar(value) { 
 
    this.value = value; 
 
    this.letMeKnow(); 
 
    } 
 
} 
 

 
console.log(obj.testVar) 
 

 
obj.testVar = 5; 
 
console.log(obj.testVar) 
 

 
obj.testVar = 15; 
 
console.log(obj.testVar)

관련 문제