Не знаю, слишком ли запутан вопрос, но здесь я иду.Доступ к текущему элементу 'this', когда внешний 'this' был связан
Если бы я получил что-то вроде:
var Test = function(){
this.foo = a;
}
Test.prototype.init = function() {
$(document).on('change', '.form-control', this.myFunction);
}
Test.prototype.myFunction = function() {
console.log(this.foo);
console.log(this);
}
Я понимаю, что при печати «это» в MYFUNCTION было бы напечатать контекст выполнения функции, принявшего вызов, в данном случае это будет распечатать контекст выполнения для .on ('change' ...). Поэтому при печати this.foo, поскольку он не существует в этом контексте, тогда undefined будет распечатан.
Чтобы решить эту проблему и получить доступ к this.foo, я делаю следующее:
Test.prototype.init = function() {
$(document).on('change', '.form-control', (this.myFunction).bind(this));
}
Test.prototype.myFunction = function() {
console.log(this.foo);
console.log(this);
}
Я связывающую «это» для вызова функции, так this.foo будет распечатано, что в порядке, но мой вопрос в том, как я могу получить доступ к контексту выполнения для .on ('change' ...) ??? Смысл, как я могу получить доступ к 'этому', к которому у меня первоначально был доступ до привязки?
Thanks
http://stackoverflow.com/questions/80084/in-javascript-why-is-the-this-operator-inconsistent – Snowmonkey