Отслеживая ошибку, я столкнулся с каким-то странным поведением: Почему это происходит?Когда переменная может быть как нулевой, так и функцией?
Примечание: Для справки этот код является результатом того, что код JavaScript работает с сжатым компилятором закрытия.
В chrome отладчик приостановлен на пороге ошибки. И я выпустил несколько строк в консоли (см. Ниже).
a
> null
B.Ta.Cd[a]
> "Override this" error is thrown
B.Ta.Cd[null]
> undefined
Я не понимаю, что если a
должен быть null
то почему вторые две линии не производят то же самое.
Интересно, что я хотел посмотреть, как a
и null
отличаются.
typeof(a)
> "function"
typeof(null)
> "object"
Теперь мне интересно, как может a
быть как функция и null
?
This video shows the tests in the console
Мой фикс было проверить typeof(a) == "function"
затем вернуться. Но мне не нравится добавлять исправления для проблем, которые я не понимаю.
Можете ли вы попробовать 'B.Ta.Cd [0]'? Я бы предположил, что нуль принуждается к 0. –
что делает ваша функция? Вы используете '==' где-то? Попытайтесь перейти на '===' и посмотреть, все ли у вас такое же поведение. –
@ScottMermelstein: Нет; Это не. – SLaks