Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Třídy, dědičnost a OOP v Javascriptu - I

MD
MD (neregistrovaný) 194.213.198.---
15. 3. 2010 10:30

funkce objekt/neobjekt?

Nelibi se mi, ze nahore pisete, ze vsechno je objekt (i funkce) a ma spolecneho predka Object. Nize pisete, ze funkce je prosta definice a ze neni prirazena k zadnemu objektu. Tak jak tomu mam rozumnet?

Ondřej Žára aura:93
15. 3. 2010 10:35

Re: funkce objekt/neobjekt?

„Neni prirazena k zadnemu objektu“ – tim autor mysli (alespon ja to tak chapu), ze funkce ve smyslu metody (tedy takova, ktera bude volana s teckou pred nazvem) neni svazana s tridou, u ktere je definovana.

Zatimco tedy v jinych jazycich piseme

class A { public method B() {} }

a je tak patrne, ze B „patri“ k A, tak v JavaScriptu zapis

A.prototype.B = function() {}

nevytvari zadnou logickou vazbu mezi (zcela normalni) funkci B a jeji (tridou) A. Uplne stejneho vysledku by bylo mozno docilit treba zapisem

var B = function() {}
A.prototype.B = B;

B je stale normalni funkce bez jakekoliv vazby na A.

Daniel Steigerwald aura:52
15. 3. 2010 12:14

Re: funkce objekt/neobjekt?

Je to jednoduché. Snažím se vysvětlit, kdy se funkci říká funkce, kdy metoda, a kdy konstruktor. To pojmenování nám odlišuje, jakou roli funkce zrovna hraje. Když říkám „funkce je prostá definice a není přiřazena k žádnému objektu.“ tak to prostě znamená, že kdybychom funkci přiřadili třeba do prototype, už bychom jí správně měli říkat metoda. Mrkněte se na definici metody. „A method is a subroutine that is exclusively associated either with a class“. Už je to jasné?

Zasílat nově přidané příspěvky e-mailem