Это, вероятно, лучше всего объяснить с помощью некоторого кода. Я знаю, что в следующем примере this
внутри метода addEvent - это текущий элемент, содержащийся в массиве elements
.
var testClass = new Class({
testMethod: function() {
var elements = $$('.elements');
elements.addEvent('click', function() {
console.log(this) //This will log the current element from elements
});
}
});
Я также знаю, что в следующем примере this
вместо этого относится к классу testClass
, потому что я использовал метод связывания.
var testClass = new Class({
testMethod: function() {
var elements = $$('.elements');
elements.addEvent('click', function() {
console.log(this); //This will log the class testClass
}.bind(this));
}
});
Тогда мой вопрос: как мне одновременно получить доступ к классу и текущему элементу в addEvent?
Обратите внимание, что если бы элементы не были массивом, это не было бы проблематично, поскольку я мог бы передавать элементы в качестве параметра в методе связывания. Однако, поскольку это массив, я не могу этого сделать, так как он просто дал бы мне массив всех элементов вместо текущего элемента. Спасибо!