Super Short History
Brendan Eich designed Mocha in 10 days, the language was officially called LiveScript, then was renamed JavaScript because of the spin-off of Java. (a marketing ploy)
JavaScript is noting like Java, but designed to syntaxly like Java.
Function Constructor
Use capital letter for function constructor: prevent missing “new” operator during construction
operator “new”
The “new” keyword is designed to make Java user feel comfortable. It is an operator in JavaScript.
- Create an empty object
- Invoke the function, point the keyword “this” to the empty object
- Pointing prototype to the function constructor
- Return the object
We can construct an object via function (function constructor) – just an regular function.
prototype extension
Build-in function constructors
Pure Prototypal Inheritance
Change the prototype along the way
Make object and create new objects by pointing prototype to this object using Object.create(), and override properties and methods.
Implement in newer browsers
Use polyfill, note the scenario of usage
ref:
ES6 Classes
JavaScript doesn’t have classes until ES6, even though class keyword been added, but it still an object not a definition in other programming language.
Just another syntactical way(syntactic sugar) to construct objects.