Я пытаюсь понять, как ключевое слово this
работает в JS, особенно то, что именно представляет собой ключевое слово this
, когда вы используете его внутри класса, но не внутри каких-либо вложенных функций. Пожалуйста, помогите мне понять, почему я получаю сообщение об ошибке, когда я изменяю этот первый параграф кода ко второму абзацу кода.Значение этого ключевого слова внутри класса
console.log(this);
constructor() {
console.log(this);
}
}
var tiger = new Animal();
Этот выход будет: Window {} and Animal {}
как я хочу, в консоли.
console.log(this);
class Animal {
var that = this; // addition
constructor() {
console.log(this);
}
}
var tiger = new Animal();
console.log(tiger.that) // addition
Это выведет Uncaught SyntaxError: Unexpected identifier
в консоль. Я считаю, причина этой ошибки, это линия var that = this;
, но я не понимаю, почему, я предположил, переменная that
будет равна Window {} or Animal {}
.
Ваш синтаксис неверен, вам нужно переместить 'var that' внутри вашего' constructor() ' –
Я предполагаю, что вы получаете ошибку на' console.log (tiger.that) ', потому что' var that = this; 'не отображается вне класса. –
@Mr. Alien Дело в том, что я не хочу переместить его в вложенный метод, например, в конструктор. Я хотел посмотреть, что такое 'this' ссылается, когда снаружи метода, но все еще внутри класса. – Arshaan