Есть кое-что, что я не понимаю с ключевым словом "this", точнее, когда нет слова "this".как этот пример:
function Person(name) {
this.name=name;
this.go = function() {
console.log("My name is " + name);
}
}
let person = new Person("Peter");
person.go();
Моя проблема, когда я вызываю go () для объекта person.Почему это работает?Я думал, что мне нужно поместить "this.name" в мой метод.Потому что когда я запускаю person.go () внутри метода go (): имя не является параметром, не является локальной и не глобальной.Как движку JS удается понять, что означает «имя»?
Например, когда я это делаю:
var person = {
name: "Peter",
go: function() {console.log("My name is " + name);}
};
person.go () не работает, потому что «имя» неизвестнои я должен добавить this.name, чтобы заставить его работать.
Я не понимаю, почему это работает в первом примере, но не во втором.
Спасибо