2014-12-10 3 views
6

Мне нужна ваша помощь.
У меня есть 2 функции:Как получить [[boundthis]] от функции

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; 
}, 

и это:

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); 
}, 

Как я могу получить свойство [[BoundThis]] от функции resizeListener без исполнения.

+1

Что такое BoundThis, вы имеете в виду это? –

+0

console.dir (function) дайте мне это - [[BoundThis]]: div.note.note2 – trunkovich

+1

@unikorn: OP вызвал 'Function.prototype.bind' на обработчике - я подозреваю, что OP хочет получить 'this', которое было привязано к этой функции. –

ответ

7

Вы не можете. [[BoundThis]] - internal property of bound function objects. Он не является программно доступным.

Возможно, вы сможете просмотреть его с помощью осмотра объекта с помощью консоли, но для его использования в вашей программной логике вам потребуется написать свою собственную версию bind, которая предоставляет это значение как свойство.

Смежные вопросы