Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Ошибка Cannot read property

Ошибка Cannot read property 4 года 11 мес. назад #110213

  • Noxmils
  • Noxmils аватар
  • Вне сайта
  • Мастер
  • Сообщений: 186
  • Спасибо получено: 349
  • Программист JavaScript Организатор конкурсовТестер
Здравствуйте!
При попытке наплагинить я столкнулся с такой проблемой:


Вот строчка 214:
if (this.victims.some(function (vic) {return vic == this._neighbors[Mafia][j]})) {

this.victims - это массив, this._neighbors[Mafia][j] - число. Я это проверил, они существуют и определены. Подозреваю, что я как-то неправильно написал функцию-колбек, но я делал по примерам и вроде все так, как в них.
Последнее редактирование: 4 года 11 мес. назад от AnnTenna.
Администратор запретил публиковать записи гостям.

Ошибка неясного происхождения 4 года 11 мес. назад #110240

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • УчительПрограммист JavaScript 2 место ОраторОрганизатор конкурсовДаритель Стимкея
Рискну предположить, что у тебя в function теряется this. там он становится своим внутренним.

Как вариант можно попробовать забиндить:
function (vic, neighbor) {return vic == neighbor}.bind(this._neighbors[Mafia][j])
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Noxmils

Ошибка неясного происхождения 4 года 11 мес. назад #110258

  • Noxmils
  • Noxmils аватар
  • Вне сайта
  • Мастер
  • Сообщений: 186
  • Спасибо получено: 349
  • Программист JavaScript Организатор конкурсовТестер
Mur пишет:
Рискну предположить, что у тебя в function теряется this. там он становится своим внутренним.

С большой долей вероятности Вы были правы. Я вынес this._neighbors[Mafia] во внешнюю переменную и все заработало
var neighbors = this._neighbors[Mafia];
if (this.victims.some(function (vic) {return vic == neighbors[j]})) {
Администратор запретил публиковать записи гостям.

Ошибка неясного происхождения 4 года 11 мес. назад #110259

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • Организатор конкурсовОратор2 место Композитор1 место в Готв3 место ГотвУчительПобедитель конкурса
Mur пишет:
Рискну предположить, что у тебя в function теряется this. там он становится своим внутренним.

Как вариант можно попробовать забиндить:
function (vic, neighbor) {return vic == neighbor}.bind(this._neighbors[Mafia][j])

а если стрелочной функцией, this должен сработать же вроде?
if (this.victims.some(vic => return vic == this._neighbors[Mafia][j])) {
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Noxmils
Время создания страницы: 0.221 секунд