Created
September 27, 2017 23:01
-
-
Save orionstar/1262192eebb1289494bc9bd15fca30a0 to your computer and use it in GitHub Desktop.
"Extend" JS object
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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