Skip to content

Instantly share code, notes, and snippets.

@orionstar
Created September 27, 2017 23:01
Show Gist options
  • Save orionstar/1262192eebb1289494bc9bd15fca30a0 to your computer and use it in GitHub Desktop.
Save orionstar/1262192eebb1289494bc9bd15fca30a0 to your computer and use it in GitHub Desktop.
"Extend" JS object
/**
* Leszármaztatás egy objektumból
*
* @param {Object} childObj Gyermek
* @param {Object} parentObj Szülő
* @return {void}
*/
var extendObj = function(childObj, parentObj) {
// Készítünk egy ideiglenes objektumot,
// hogy elkerüljük a későbbi felülírását
// a szülő objektum metódusainak és
// változóinak, ha közvetlenül a szülő
// prototípusával dolgoznánk.
var tmpObj = function () {}
// A szülőobjektum prototípusával felülírjuk
// az ideiglenes objektumét
tmpObj.prototype = parentObj.prototype;
// Ha a gyermek felülírja a szülő objektum metódusát,
// de a szülőjét elérhetővé akarjuk tenni, akkor azt
// a parent-en keresztül érheti el
tmpObj.prototype.parent = parentObj.prototype;
// A gyermek prototípusának beállítjuk
// az ideiglenes objektumot
childObj.prototype = new tmpObj();
// A gyermek konstruktorának pedig beállítjuk
// a gyermek objektumot
childObj.prototype.constructor = childObj;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment