2017-09-14 1 views
-1

자바 스크립트 개체를 참조하는 것에 대해 혼란스러워합니다. 이 같은 태그가있는 경우 :커스텀 자바 스크립트 객체에서 onclick 태그를 설정하는 방법은 무엇입니까?

<button id='myButton'>Hello</button> 

을 나는 자바 스크립트에서 사용자 정의 클래스를 만들 :

이 기능이 "안녕하세요"텍스트, 그것은 것 쇼 경고 팝업이에서 내가 무엇을 기대
function myClass(){ 
    this.myButton= document.getElementById('myButton'); 

    this.myButton.addEventListener("click",function(){ 
     alert(this.myButton.innerHTML); 
    }); 
} 

,하지만 내가 가진 것은 :

TypeError: this.myButton is undefined 

그럼,가 기능을 변경하는 일을하려고 :

function myClass(){ 
    this.myButton= document.getElementById('myButton'); 

    this.myButton.addEventListener("click",function(){ 
     alert(this.myButton); 
    }); 
} 

그리고 내가 가진 것은 "undefined"라는 경고 팝업입니다. 내 문제를 해결하기위한 어떤 생각?

답변

1

당신은 당신이 선언 된 인라인 함수에 대한 this 때문에

function myClass(){ 
    this.myButton= document.getElementById('myButton'); 
    var self = this; 

    this.myButton.addEventListener("click",function(){ 
    alert(self.myButton); 
    }); 
} 

window 객체를 참조 사용해야합니다.

+0

작동합니다. 나는 그것에 대해 전에 몰라. 감사. – user2265229

관련 문제