var myVar; возвращает HTMLDivElement в Chrome, но не в FF? - PullRequest
0 голосов
/ 05 мая 2011

Я попытался установить переменную в самой первой строке моего скрипта, чтобы я мог получить к ней доступ позже (и проверить, не было ли она неопределенной. Основная суть кода:

var map;
var mapIsVisible = false;

console.log(map);

function clearMap() {
  if(map != undefined) {
    map.clear();
  }
}

clearMap();

FF, он работает отлично. Никаких ошибок вообще. Chrome выдает ошибку, которая говорит:

Uncaught TypeError: Object #<HTMLDivElement> has no method 'clear'

, что привело меня к созданию console.log после создания экземпляра переменной, и я получил HTMLDivElement. Почему это так?что FF возвращает неопределенное значение, в то время как Chrome говорит, что это HTMLDivElement, когда его явно нет? Или Chrome устанавливает это для всех объявленных вами переменных, которые не имеют какого-либо типа?

Мое исправление было теперь явноскажем, что карта была неопределена:

var map = undefined;

и мой сценарий работает хорошо. Я хочу знать, почему это происходит для Chrome

РЕДАКТИРОВАТЬ Как сказано в ответахУ меня действительно есть элемент с идентификатором «map». Я не знал, что они автоматически добавили переменные JS для этого.

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Возможно, на вашей странице где-то есть <div id="map">, и chrome считает, что вы ссылаетесь на него с помощью используемой вами переменной map.

1 голос
/ 05 мая 2011

Я предполагаю, что на вашей странице есть элемент с атрибутом name или id картыКажется, я помню, что идентифицированные элементы автоматически становятся глобальными переменными JS в Chrome.Бог знает почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...