August 2016
Beginner to intermediate
847 pages
17h 28m
English
Based on the idea that objects inherit from objects, Douglas Crockford advocates the use of an object() function that accepts an object and returns a new one that has the parent as a prototype.
function object(o) {
function F() {}
F.prototype = o;
return new F();
}If you need access to an uber property, you can modify the object() function like so:
function object(o) {
var n;
function F() {}
F.prototype = o;
n = new F();
n.uber = o;
return n;
}Using this function is the same as using the extendCopy(): you take an object such as twoDee, create a new object from it and then proceed to augmenting the new object.
var triangle = object(twoDee); triangle.name = 'Triangle'; triangle.getArea = function () { return this.side * this.height / 2; }; ...