Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter
    nagyúr

    Gyártottam egy aprócska weblapot teszteléshez. Egy form, rajta szöveg mezővel, és egy gombbal. Megnyomom a gombot, lefut a függvény, és beírja az értéket. Az index.html egészben:

    <html><head><script type="text/javascript" language="javascript">
    var proven = (function (a, b) { return a * b; })("2", 3.14);
    function read_it() {
    urlap.blabla.value= proven(); // ezzel nem mukodik
    // urlap.blabla.value= "2" *3.14; // ezzel mukodik
    return;}
    </script></head>

    <body><form name="urlap">
    <input type="text" name="blabla" width="16">
    <input type="button" value="Read" onclick="read_it()" />
    </form></body>

    </html>

    Ha a sima aritmetikai kifejezés van a read_it() érték adó sorában, akkor bekerül a 6.28 a szöveg mezőbe. Ha a proven()-t hívom, akkor nem: üres marad a szöveg mező, bármennyit nyomogatom a gombot. Valami nem jó rajta.

    Minek ilyen nyakatekerten megoldani a függvényeket? Nem igazán világos itt az anonim funkció szerepe sem, hogy tulajdonképpen minek - nem sok értelme van.

    Átalakítva valami normálisan értelmezhető formára:

    function multiply( a, b ){
    return a * b;
    }

    alert( multiply(3, 4) ); // 12

    Így még lehet is látni, mit akar csinálni a függvényed.
    Egyébként ha nagyon ragaszkodsz - az okát nem látom - a saját függvényedhez, akkor az anonim funkciónál sincs sok értelme egyből megadni a bemenő paramétereket.
    Példa:

    var proven = function (a, b) { return a * b; };

    alert( proven(3, 4) ); // 12

    Így pontosan ugyanaz a függvény meghívásának módja.

    =====

    (#2300) Athlon64+ : sajnos nagyon sok tutorialban a mai napig benne maradt ez a language="JavaScript" baromság. Ez még nagyon régen használatos volt, de már elég régóta kiment a divatból - tehát "deprecated"-nek minősül (pl.). Itt is találtam egy oldalt, ahol arról vakerásznak, miért is kell(ett) ez az attribútum. Sajnos az ilyeneket nem törlik. Volt ilyen, ma már nincs.

  • Peter Kiss
    őstag

    Gyártottam egy aprócska weblapot teszteléshez. Egy form, rajta szöveg mezővel, és egy gombbal. Megnyomom a gombot, lefut a függvény, és beírja az értéket. Az index.html egészben:

    <html><head><script type="text/javascript" language="javascript">
    var proven = (function (a, b) { return a * b; })("2", 3.14);
    function read_it() {
    urlap.blabla.value= proven(); // ezzel nem mukodik
    // urlap.blabla.value= "2" *3.14; // ezzel mukodik
    return;}
    </script></head>

    <body><form name="urlap">
    <input type="text" name="blabla" width="16">
    <input type="button" value="Read" onclick="read_it()" />
    </form></body>

    </html>

    Ha a sima aritmetikai kifejezés van a read_it() érték adó sorában, akkor bekerül a 6.28 a szöveg mezőbe. Ha a proven()-t hívom, akkor nem: üres marad a szöveg mező, bármennyit nyomogatom a gombot. Valami nem jó rajta.

    A proven csak egy értéket tartalmaz, nem egy függvényt. Az eredeti kódban is egy self executing függvény visszatérési értékét kapta meg. Döntsd el, mit szeretnél.

    language="javascript"> <-- :Y Ezt hol olvastad?

Új hozzászólás Aktív témák