Почему глобальные переменные и переменные this.something не объявлены? - PullRequest
1 голос
/ 15 февраля 2011

Когда я использовал новую переменную что-то. Что-то или это. Что-то, мой код работал, когда я пропустил ключевое слово var:

this.something = 1;
something.something = 1;

, но когда я пишу

var this.something = 1;
var something.something = 1;

это не работает.

Почему?

Ответы [ 3 ]

2 голосов
/ 15 февраля 2011

Нельзя объявить поле this (поле члена) или поле другого объекта.Это просто неверный синтаксис.

Вы используете var для объявления локальных переменных, которые являются либо функциональными, либо (если вы не в функции) глобальными.И, как сказал Патрик, имя переменной не может содержать точку.

2 голосов
/ 15 февраля 2011

Я полагаю, потому что var ожидает действительный идентификатор, а . не является допустимым символом для идентификатора.

Он думает, что вы хотите, чтобы имя переменной было действительно this.something, что недопустимо.


При тестировании двух версий я получаю немного разные ошибки.

Тот, с this.something говорит мне:

SyntaxError: неожиданный токен

Тот, с something.something говорит мне:

SyntaxError: неожиданный токен.

Та же ошибка, но недопустимым токеном в первом является ключевое слово this.

0 голосов
/ 15 февраля 2011

var - это синтаксис объявления переменной. В Javascript просто присваивая значение свойству, оно присоединяет свойство к объекту.

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