Я не совсем уверен, что вы спрашиваете, но я сделаю удар:
Когда вы используете if
или любое другое условие, убедитесь, что ваше выражение ... выражение.Вы должны быть в состоянии выразить свое условие на языке плана.Итак, попробуйте произнести это вслух:
if (this.intersectBounds) {
// do something
}
"Если переменная this.intersectBouds, то что-то сделать."
Если что?Если он не установлен (вероятно, что вы имеете в виду)?Если это не так (вероятно, не то, что вы имеете в виду)?Если это не синий?У вас всегда должно быть какое-то сравнение в вашем условном выражении, поэтому нет никаких сомнений относительно того, какое условие вы проверяете:
if (typeof this.intersectBounds != 'undefined') {
// do something
}
"Если переменная this.intersectBouds имеет typeof 'undefined',затем сделайте что-нибудь. "
Теперь у нас есть выражение, которое можно выразить простым языком.Это может быть частью того, почему вы попали в ошибку, но даже если это не так, это всегда хорошая практика.
Теперь, что касается области действия ... при первом запускекод this.intersectBounds
не будет установлен, если вы не объявили его до выполнения этого кода.В следующий раз, когда вы запустили код, предполагая, что это тот же экземпляр объекта, обрабатывающего его, как в прошлый раз, переменная все равно будет заполнена значением, которое вы установили в прошлый раз (предполагая, что никакой другой код не изменил его).