Hallo
Ik zit wat kennis te verzamelen omtrent JavaScript design patterns en ben het "Revealing Prototype Pattern" aan het toepassen.
Ik zal mijn vraag starten met volgende voorbeeld:
Hier zie je dus een prototype met een gemeenschappelijke private member, namelijk "factor".
Het probleem is, dat ik dus de functie getRealAge wil prototypen om efficiënter geheugenbeheer te hebben, en ik wil de functie aanspreken in de constructor van Dog, MAAR wil tegelijkertijd dat ze niet publiek wordt. Maar net omdat je het wil gebruiken in de constructor, moet je ze wel publiek maken.
Verkracht ik hier javascript, of kan iemand me de weg wijzen?
Ik wil dit toepassen in mijn webapplicatie, waar een javascript object een soort client side control voorstelt. Het object is dus ook gelinkt aan een bestaand DOM element, waar het zijn output doet. Ik wil dat linken laten gebeuren via een prototype functie in de constructor, maar wil wel dat die functie niet naar buiten komt.
Hopelijk is dit een beetje duidelijk, want tot voor kort (voordat ik de cursus JS Design Patterns had gevolgd) was dit voor mezelf ook chinees
Ik zit wat kennis te verzamelen omtrent JavaScript design patterns en ben het "Revealing Prototype Pattern" aan het toepassen.
Ik zal mijn vraag starten met volgende voorbeeld:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| //Constructor function Dog(age) { this.age = age, this.humanAge = Dog.prototype.getHumanAge.call(this); }; Dog.prototype = function() { var factor = 7, getHumanAge= function() { return factor * this.age; }; //Expose private members return { getHumanAge: getHumanAge}; }(); var tommy = new Dog(4); console.log(tommy.humanAge); console.log(tommy.getHumanAge()); |
Hier zie je dus een prototype met een gemeenschappelijke private member, namelijk "factor".
Het probleem is, dat ik dus de functie getRealAge wil prototypen om efficiënter geheugenbeheer te hebben, en ik wil de functie aanspreken in de constructor van Dog, MAAR wil tegelijkertijd dat ze niet publiek wordt. Maar net omdat je het wil gebruiken in de constructor, moet je ze wel publiek maken.
Verkracht ik hier javascript, of kan iemand me de weg wijzen?
Ik wil dit toepassen in mijn webapplicatie, waar een javascript object een soort client side control voorstelt. Het object is dus ook gelinkt aan een bestaand DOM element, waar het zijn output doet. Ik wil dat linken laten gebeuren via een prototype functie in de constructor, maar wil wel dat die functie niet naar buiten komt.
Hopelijk is dit een beetje duidelijk, want tot voor kort (voordat ik de cursus JS Design Patterns had gevolgd) was dit voor mezelf ook chinees