Allen Wirfs-Brock (2014-08-06T01:37:08.000Z)
forbes at lindesay.co.uk (2014-08-06T14:13:01.104Z)
> ```js > class ClientForm extends Form{ > submit() { > super.submit(); // Invokes Form.submit > let superSubmit = super.submit; // Reference to Form.submit > superSubmit(); // Invokes, but `this` is now undefined; not sure if intended > ``` just like: ```js this.submit(); // Invokes ClientForm.submit let thisSubmit = this.submit; //Reference to ClientForm.submit thisSubmit(); //invokes, but 'this' in now undefined ``` This is how properties and method invocations work in JS. All that the use of 'super' does is change the place the property lookup starts. Otherwise `super` is equivalent to `this` in the above code. > ```js > super(); // Invokes Form.submit > ``` semantically equivalent to `super.submit();` just a short cut > let superSubmit2 = super; // Error: "Unexpected token ;" in some languages, such a unqualified 'super' reference would be equivalent to 'this'. We intentionally made it an error for that reason. I perhaps could be convinced that it should mean the same as `super.submit`. But in that case, ```js superSubmit2() ``` would still not be the same thing as ```js super(); ``` or ```js super.submit(); ```