Autor Zpráva
ServIT
Profil
Zdravím,
Zeptám se na úplně trapnou věc, ale nějak si nedokážu odpověď najít sám, tak to zkusím zde

nedávno jsem zkoušel CKEditor a jeden plugin v něm nefungoval. Kouknu na zdroják (machr nejsem, ale trochu programování rozumím ) a zaujala mně jedna maličkost, hlavní skript začínal závorkou. K čemu to je, jsem v tu chvíli neřešil, ale dnes jsem hledal řešení, jak obejít vytuhnutí javascriptu, když loguju do konzole (výtuh u FF2, který máme na pokladnách, novější tam nedám), a v jednom elegantním řešení bác, zase ta závorka ..

window.console = window.console || (function(){
    var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(s){};
    return c;
})();

proč tam před function tu závorku strčil - respektive to celé dal do závorek ?

nebo tady kód jednoho CK pluginu :
/*
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/

(function(){function a ...... (
atd

Jaký to má smysl ?

Předem díky za nápovědu
pcmanik
Profil
ServIT:
Autor tu vytvára nový closure aby premenné a funkcie neboli viditeľné z globálneho scope. A zároveň sa ihneď po načítaní skriptu daný kód vykoná. (function() { ... })();

Neviem vždy dobre vysvetlovať :D tak si o tom môžeš prečítať trochu viac - najmä sekciu self-invoking functions.
ServIT
Profil
Strašně moc díky za nakopnutí, ani jsem nevěděl, jak se to jmenuje :)))

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:

0