There's something I don't understand with "this" keyword, more precisely when there is no "this". like this example :
function Person(name) {
this.name=name;
this.go = function() {
console.log("My name is " + name);
}
}
let person = new Person("Peter");
person.go();
My problem is when I call go() on person object. Why does it work ?? I thought I needed to put "this.name" inside my method. Because when I run person.go(), inside the go() method : name is not a parameter, is not a local variable and not a global variable either. How the JS engine manages to understand what "name" means ?
For example when I do that :
var person = {
name: "Peter",
go: function() {console.log("My name is " + name);}
};
person.go() doesn't work because "name" is unknown and I have to add this.name to make it work.
I don't understand why it works in the first example but not the second one.
Thanks