/ / odovzdávanie hodnôt funkcii IIFE - javascript, iife

odovzdávanie hodnôt funkcii IIFE - javascript, life

To by mohla byť hlúpa otázka, ale pozrel som sa všade a prichádzam do SO ako posledná možnosť. Pochybujem, že funkcia IIFE zvyčajne vyzerá takto

var me = (function() { /*code*/} )();
me();

Zatiaľ som nevidel žiadny kód, ktorý by obsahoval premenné. Je možné odovzdať hodnoty funkcii IIFE? Už som vyskúšal použitie

var Person = (function(name,age){
this.name = name;
this.age = age;
}());
Person("Bob Smith", 30);

čo mi dáva nedefinovanú chybu.

Existuje teda spôsob, ako tieto hodnoty odovzdať do IIFE, alebo by sa mu malo zabrániť?

odpovede:

1 pre odpoveď č. 1

Išlo by o IIFE s parametrami:

(function (a, b) {
alert(a + b);
}("hello", " world"));


To, čo sa zdá, že robíte, ako povedali iní, je konštruktér, takže ich tam nie je potrebné.

Týmto spôsobom môžete urobiť konštruktor, ak chcete:

function Person(name, age) {
this.name = name;
this.age = age;
}

var bob = new Person("Bob Smith", 30);

Mohli by ste urobiť anonymne vyvolaný konštruktor, ale to je zbytočné, pretože je to typ dohody na jedno použitie, a na to by ste nepotrebovali konštruktor.