>
function city(circle,reinf)
        {
            this.reinf = reinf;
            this.circle.onmouseover = function(){
                alert(this.city);
            }   
        }

주요 도시 요소와 도시의 다른 요소에 액세스하는 방법


  • 답변 # 1

    문제는 this alert(this.city)  실제로 this.circle 를 나타냅니다  클릭 요소-따라서 this 를 제어해야합니다  함수 내에서 참조하십시오. 세 가지 방법이 있습니다 :

    .bind(this) 사용

    function city(circle, reinf) {
        this.city = "Foo";
        this.circle = circle; // Forgot this one?
        this.reinf = reinf;
        this.circle.onmouseenter = function(){
            alert(this.city);
        }.bind(this);   // << bind to the outer this context
    }
    
    

    와이즈 비즈 저장  변수

    this
    
    

    화살표 기능 사용

    function city(circle, reinf) {
        var self = this;
        this.city = "Foo";
        this.circle = circle;
        this.reinf = reinf;
        this.circle.onmouseenter = function(){
            alert(self.city);   // << refer to self
        }
    }
    
    

    PS : 당신은 또한 function city(circle, reinf) { this.city = "Foo"; this.circle = circle; this.reinf = reinf; this.circle.onmouseenter = () => { // << Arrow function with unbound this alert(this.city); }; } 를 사용하고 싶지 않을 것입니다  - mouseover 와는 다르게 작동하기 때문에 .

    mouseenter

관련 자료

  • 이전 android - 작동하지 않는 활동에 조각 추가
  • 다음 drupal 8 필드 UI 엔티티 탭이 작동하지 않습니다