Autor Zpráva
kubatt
Profil
Ahoj chci se zeptat tvořím si v OOP objekt
var Test = function(){}
Test.prototype = {
   test: function(aa){ return aa; }
}
příklad...
ale problém je že ji musím volat takto
tt = new Test().test("dd")
no ale lepe by bylo to volat takto
tt = new Test.test("dd")
ale to nejde :I nevíte jak na to? díky
pako
Profil *
Z mojho pohladu je problem uz ta prva definicia tt. Preco by to tak bolo lepsie ? Ked potrebujes priradit premennej tt retazec "dd" tak na to nepotrebujes pouzivat konstruktor.

Mozno by bolo lepsie najskor sa naucit nieco o objektoch, vlastnostiach a metodach, co je vysledkom volania funkcie a az potom riesit konstruktory a prototypy.
Joker
Profil
kubatt:
no ale lepe by bylo to volat takto
tt = new Test.test("dd")
ale to nejde :I nevíte jak na to? díky
Nejde, protože syntakticky je to nesmysl. Prostě konstruktor se píše se závorkami na konci.

Ale šlo by to udělat třeba i takhle:
var test = { test : function(aa) { return aa; } }; test.test("dd");
tt = test.test("dd");

Jsou to ale dva rozdílné skripty pro různé situace a nedá se mezi nimi rozhodovat podle toho, který je „hezčí“.
Chamurappi
Profil
Reaguji na Jokera:
syntakticky je to nesmysl. Prostě konstruktor se píše se závorkami na konci.
To není úplně přesné, protože:
1) Při volání konstruktoru bez argumentů je dovoleno závorky vynechat. Můžeš si zkusit třeba alert(new Date).
2) Konstruktor může být (skoro) jakákoliv funkce, nemusí být globální, ale klidně uvnitř objektu, tedy kdyby v Test.test byla funkce, mohla by se též použít jako konstruktor, pak by i ten citovaný kubattův řádek dával smysl.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: