Дополнительно
Прохождение сфера в цикле foreach
Я'м пытаюсь использовать метод обратного вызова addToCount
вместо анонимной функции в объекту
. Но я могу'т открыть это.граф в его (возвращает undefined`).
function Words(sentence) {
this.sentence = sentence;
this.count = {};
this.countWords();
}
Words.prototype = {
countWords: function() {
var words = this.sentence.split(/\W+/);
words.forEach(this.addToCount);
},
addToCount: function(word) {
word = word.toLowerCase();
if (word == '') return;
if (word in this.count)
this.count[word] += 1;
else
this.count[word] = 1;
}
}
Я думаю, что проблема в области. Как я могу передать это в addToCount или есть ли другой способ, чтобы заставить его работать?
42
2
Вы должны использовать
#функция привязки
для связывания область:Обратите внимание, что это не во всех браузерах: следует использовать прокладку (как указано в ссылке выше), чтобы добавить его в браузерах, которые Дон't функция поддержки
#персонализация
.Как dandavis отмечает, в комментариях, вы можете передать значение
массив#цикл foreach
в качестве контекста для обратного вызова:Попробовать нечто подобное. Я've использовали
что
, а нечто
, но также Я'вэ переехалaddToCount
так что's внутриcountWords
. Что получаетсяcountWords
в закрытие, содержащее этот.