Detekce funkcí a účinnost funkcí v JavaScriptu

Efektivita při provádění kódu je neuvěřitelně důležitá, zvláště když se daná funkce používá opakovaně. Často vidíte opakovaná volání funkcí v rámci JavaScriptu. Když pracujete na uvedených rámcích, musíte se ujistit, že jste dosáhli jakékoli možné mikrooptimalizace. Jednou mikrooptimalizací, kterou můžete provést, je spouštění podmínek před vytvořením funkce, nikoli pokaždé, když se funkce spustí. Dovolte mi uvést základní příklad.

Špatný

Následující by bylo považováno za neefektivní:

function something() {
    if('something' in obj) {
        // something
    }
    else {
        // fallback
    }
}

Výše uvedený kód je neefektivní, protože podmíněné se spouští při každém volání funkce. Pojďme to udělat lépe!

Dobré

Místo spouštění podmíněné kontroly v rámci každého volání funkce spusťte podmíněnou kontrolu před nastavení funkce:

var something = ('something' in obj) ? function() {
    // something
} : function() {
    // fallback
};

Tento vzor je zvláště použitelný při použití detekce vlastností - tj. hodnota podmíněného se nikdy nemění. Samozřejmě, že podmíněné vyhodnocení je rychlé, ale proč počítat snadné podmíněné více než jednou? Neměl bys, samozřejmě. Mějte tento vzorec na paměti při vytváření vlastních frameworků – neopakujte kód!