/ / Je toto správny spôsob použitia prototypov alebo existuje lepší spôsob, ako to urobiť? - javascript, jquery

Je to správny spôsob používania Prototypov, alebo existuje lepší spôsob, ako to urobiť? - javascript, jquery

Momentálne pracujem na projekte a mám obmedzené znalosti JavaScriptu. Používam prototypy (jeden na ich vyskúšanie a dva, pretože sa mi v tom čase zdal skvelý nápad).

Mám súbor JS, ktorý je plný prototypov a volá ich takto:

$(document).ready(function() {
var dash = new Dash();
});

var Dash = function() {
var _ = this;

_.defaults = {
pages: {},
page_name: {},
page_order: []
};

_.init();
};

Dash.prototype.init = function() {
var _ = this;

_.getPages();
_.onClickNewPage();
_.onClickEditPage();
};

Dash.prototype.getPages = function() {
var _ = this;

// calls some ajax
};

Skoro všetky metódy prototypu iba upravujú stránku v závislosti od toho, čo chce používateľ vidieť.

Je to správny spôsob použitia prototypov? Ak nie, existuje lepší spôsob? Čo by som mohol vylepšiť a aké sú pamäťové dôsledky volania var _ = this; v každej metóde prístup k iným metódam?

Ospravedlňujeme sa, ak je to zjavná otázka, ale na Googli nájdem iba príklady mačky vs. psa a nie sú príliš užitočné.

Naozaj chcem, aby bol tento kódex čo najefektívnejší pri používaní najlepších postupov.

Upozorňujeme tiež: nič nezdedím, iba veľa využívam rôzne metódy.

odpovede:

0 pre odpoveď č. 1

Skoro všetky metódy prototypu iba upravujú stránku v závislosti od toho, čo chce používateľ vidieť.

Ide o účel kódu, ktorý nemá alebo nemá nič spoločné s prototypmi.

Nič nezdedím, iba veľa pristupujem k rôznym metódam. Je toto správny spôsob použitia prototypov?

Nie. Ak nemáte dedičstvo ani viac inštancií (a vytvoríte iba jednu new Dash na svojej stránke), potom je použitie konštruktora triedy s prototypovými metódami príliš komplikované. Nie je to potrebné.

Ak nie, existuje lepší spôsob?

Stačí použiť nejaký vzor modulu, kde všetky tieto funkcie umiestnite ako deklarácie do spoločného rozsahu, alebo na objektový literál, ak sa chcete zamerať na OOP a rozšíriteľnosť.

Ak chcete urobiť modul opakovane použiteľným, zabaľte ho do funkcie, ktorá vráti objekt.

Aké sú pamäťové dôsledky volania var _ = this; v každej metóde prístup k iným metódam?

Lokálne premenné nemajú žiadny vplyv na pamäť, ale vaše _ má problém s čitateľnosťou. Stačí ísť so štandardom this. spôsob volania metód.