So I have a question about this and just having normal variables in classes.
Normally we do something like this:
class Thingy { constructor(thing) { this.id = thing } printID() { console.log(this.id) } } let newthingy = new Thingy("ID1") let newthingy2 = new Thingy("ID2") newthingy.printID() newthingy2.printID() Which works just fine, however something like this will not:
class Thingy { constructor(thing) { let id = thing } printID() { console.log(id) } } let newthingy = new Thingy("ID1") let newthingy2 = new Thingy("ID2") newthingy.printID() newthingy2.printID() So I understand that newthingy will have no idea what id is, so won't it just look up the prototype chain back at the original class prototype? I realize it probably wouldn't get the right id but how come we get a id not defined error, should it attempt to look up the prototype chain first?
letkind of likevar. When you have a function and definevar something = 'some string';thensomethingis not accessible from outside of that method. When you usethisin the context of a class, it is accessible from anywhere in the class or anything that uses the class.