2016-11-24 13 views
-1

からのアクセスクラス:はJavaScript:以下のクラスを考えるとMutationObserver

function MyCustomClass(e){ 

    this.element = e; 

    this.start(){ 

     var observer = new MutationObserver(this.mutationObserved), 
     config = { 
       attributes: true 
     }; 
     observer.observe(this.element, config); 

    } 

    this.anotherFunction = function(){ 
     console.log("Another function was called"); 
    } 

    this.mutationObserved = function(e){ 
     // This doesn't work 
     this.anotherFunction(); 
    } 
} 

どのように私はmutationObservedクラスが動作するクラスにアクセスできますか?

this.anotherFunctionスコープが現在MutationObserverクラス内にあるため、機能しません。

+0

['Function.prototype.bind'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) – Andreas

答えて

0

これを試してみてください:

//... 
var self = this; 
this.mutationObserved = function(e){ 
    self.anotherFunction(); 
} 

あなたが外側の関数のためのコンテキストをキャプチャして、内側のいずれかでそれを使用する必要があります。

関連する問題