2014-12-10 7 views
6

Ich brauche deine Hilfe.
Ich habe 2 Funktionen:Wie bekomme ich [[boundthis]] von der Funktion

addMoveListeners: function(e) { 
    e = e || window.event; 
    // Binging context to function move 
    moveListener = MYAPP.move.bind(e.target.parentElement); 
    // 
    if (e.target.classList.contains('move')){ 
    document.addEventListener('mousemove', moveListener, false); 
    document.addEventListener('mouseup', MYAPP.removeListener, false); 
    } 
    resizeListener = MYAPP.resize.bind(e.target.parentElement); 
    if (e.target.classList.contains('resize')){ 
    document.addEventListener('mousemove', resizeListener, false); 
    document.addEventListener('mouseup', MYAPP.removeListener, false); 
    } 
    return false; 
}, 

und dieses:

removeListener: function(e){ 
    e = e || window.event; 
    //Here I want get element from function 
    console.dir(resizeListener); 
    // Function stores it in [[BoundThis]] 
    document.removeEventListener('mousemove', resizeListener, false); 
    document.removeEventListener('mouseup', MYAPP.removeListener, false); 
    document.removeEventListener('mousemove', moveListener, false); 
    document.removeEventListener('mouseup', MYAPP.moveListener, false); 
}, 

Wie kann ich Eigenschaft [[BoundThis]] von Funktion resizeListener ohne Ausführung.

+1

was ist BoundThis, meinst du das? –

+0

console.dir (Funktion) gib mir das - [[BoundThis]]: div.note.note2 – trunkovich

+1

@unikorn: das OP hat 'Function.prototype.bind' auf dem Handler aufgerufen - ich vermute, das OP will das bekommen 'Dieser' Wert, der an die Funktion gebunden wurde. –

Antwort

7

Sie können nicht. [[BoundThis]] ist ein internal property of bound function objects. Es ist nicht programmatisch zugänglich.

Sie können es möglicherweise mit der Inspektion des Objekts über die Konsole anzeigen, aber um es in Ihrer Programmlogik zu verwenden, müssen Sie Ihre eigene Version von bind schreiben, die diesen Wert als Eigenschaft verfügbar macht.

Verwandte Themen