Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Majkel
Člen
Avatar
Majkel:22.5.2016 12:22

Ahoj, jako C# programátorovi mi pořád některé věci v JS nejsou úplně jasné. Například v C# mám Namespace, kde si vytvořím třídu s metodami. Následně si v jiné třídě ve stejném namespace vytvořím instanci a používám dané metody. Jak tohle funguje v JS?

 
Odpovědět
22.5.2016 12:22
Avatar
Majkel
Člen
Avatar
Majkel:22.5.2016 12:35

A ještě jsem zapomněl na to, že každá třída je reprezentovaná jiným souborem.

 
Nahoru Odpovědět
22.5.2016 12:35
Avatar
Marian Benčat:21.7.2016 21:10

V JS nic jako namespace není... jsou tam moduly, kde 1 soubor = 1 modul.. pak je můžeš "reexportnout" pomocí něčím, čemu se říká barrel.. to by se vzdáleně dalo brát jako namespace... do doby, než byly moduly, tak se v javascriptu simulovaly namespacy obalením do objektu.. v Typescriptu si mel na todle internal moduly ..

Napsal si

module A{
function c(){}
}

a vygenerovaloo ti to neco pomoci iffe..

var A;
(function (A) {
        function C() {
        }
    A.C=C;
})(A|| (A = {}));
var x =  A.C();
Nahoru Odpovědět
21.7.2016 21:10
Totalitní admini..
Avatar
Odpovídá na Majkel
Patrik Valkovič:21.7.2016 21:43

V Javascriptu můžeš soubory spojit. Tady doporučuji Gulp nebo Grunt. Javascript má jinou logiku než třeba C#, Java nebo C++. Pokud si se Javascriptem nerozumíš a chtěl bys ho více napodobit C#, pak doporučuji Typescript. Jinak jsou různé způsoby, jak napodobit namespace - viz předchozí příspěvek. Nicméně lze dostat určitou úroveň zapouzdření třeba následovně:

var namespace = (function() {
        var prvniPromenna;
        var druhaPromenna;
        var objekt = {};
        objekt.prototype.setPrvniPromenna = function(value) {
                prvniPromenna = value;
                }
        objekt.prototype.getPrvniPromenna = function() {
                return prvniPromenna;
                }

        return objekt;
})();

Důležité je, že nyní se k druhé proměnné vůbec nedostaneš (teda alespoň ne nějakým jednoduchým způsobem).

Nahoru Odpovědět
21.7.2016 21:43
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.