GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — oojs/basic.js at master · JavaScriptRoom/oojs Expand file tree/ Copy pathbasic.jsMore file actions 88 lines (71 loc) · 1.78 KB / Copy pathbasic.jsFile metadata and controls88 lines (71 loc) · 1.78 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 /* Examples from Objects and the Prototype Chain by Ryan Kinal http://blog.javascriptroom.com/2013/01/14/objects-and-the-prototype-chain/ */ /* Object literals are awesome! Use the following to create an empty object */ var obj = {}; /* Set som properites in various ways */ // In the literal var obj = { a: 17, 'b': 92 }; // dot notation obj.sum = function() { return this.a + this.b; }; // bracket/array notation obj['product'] = function() { return this['a'] + this['b']; }; /* Inheritance is sweet! Objects inherit from other objects */ var point = { translate: function(x, y) { this.x += x; this.y += y; }, moveTo: function(x, y) { this.x = x; this.y = y; } }; // Create a new object with point as the prototype var inheritingPoint = Object.create(point); // Set some initial values inheritingPoint.x = 45; inheritingPoint.y = 62; // Use the inherited functions inheritingPoint.translate(5, 6); // x = 50, y = 68 inheritingPoint.moveTo(100, 75); // x = 100, y = 75 /* 'this' means... what now? */ var inheritingPoint = Object.create(point); // moveTo is called with a context of "inheritingPoint" // which means that within "moveTo", this === inheritingPoint // so "x" is set on inheritingPoint, not point inheritingPoint.moveTo(100, 75); inheritingPoint.hasOwnProperty(x); // true /* Polymorphism - change it up! */ // point3d inherits from point var point3d = Object.create(point); point3d.translate = function(x, y, z) { point.translate.call(this, x, y); // Avoid code duplication - use the "parent" function this.z += z; }; point3d.moveTo = function(x, y, z) { point.moveto.call(this, x, y); this.z = z; }; var new3DPoint = Object.create(point3d); newPoint.moveTo(42, 37, 96); |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |