By Piotr Sikora

  • javascript

  • 31 January 2014

Czasami będziesz potrzebował stworzyć automatycznie wykonywany obiekt (na przykład w przypadku zdarzeń load/document ready).

Czy próbowałeś zrobić to w ten sposób?

(function() {
        // Elementy
        var z;

        // Metody prywatne
        var internalObj = {
            init: function() {
                console.log('init')
            }
        };

        // Automatycznie wywołujący się konstruktor
        (function() {
            console.log('start');
            internalObj.init();

        })();

    })();

Automatycznie wykonywany obiekt

Co zrobisz, jeśli chcesz mieć zewnętrzne API do swojego "automatycznie wykonywanego obiektu"? Możesz to zrobić w ten sposób:

var auto = (function() {
        // Elementy
        var z;

        // Metody prywatne
        var internalObj = {

            init: function() {
                console.log('init')
            }
        };

        // Automatycznie wywołujący się konstruktor
        (function() {
            console.log('start');
            internalObj.init();

        })();
        return { initObj: internalObj.init}

    })();

auto.initObj();

Obecnie tworzymy zmienną, do której przypisujemy obiekt. Ten obiekt zwraca API z jedną metodą, która jest równa metodzie init wewnętrznego obiektu.

Ale co zrobić, jeśli nie chcemy tego robić w ten sposób i nie chcemy tworzyć żadnego nowego obiektu przypisanego do zmiennej?

(function() {
        // Elementy
        var z;

        // Metody prywatne
        var internalObj = {

            init: function() {
                console.log('init')
            }
        };

        // Automatycznie wywołujący się konstruktor
        (function() {
            console.log('start');
            internalObj.init();

        })();
        this.init = internalObj.init;

    })();

init();

Więc this.init = internalObj.init przypisuje do funkcji window (globalnej) funkcję z naszego internalObj - init.

Categories

Recent Posts

About Me

Piotr Sikora - Process Automation | AI | n8n | Python | JavaScript

Piotr Sikora

Process Automation Specialist

I implement automation that saves time and money, streamlines operations, and increases the predictability of results. Specializing in process automation, AI implementation, and workflow optimization using n8n, Python, and JavaScript.

n8n Workflows

n8n workflow automation templates

Explore my workflow templates on n8n. Ready-to-use automations for blog management, data collection, and AI-powered content processing.

3Workflow Templates

• Auto-Categorize Blog Posts with AI

• Collect LinkedIn Profiles

• Export WordPress Posts for SEO

Podobne artykuły

Odkryj więcej powiązanych treści

Czysty JavaScript: Przewodnik po metodach prywatnych i publicznych

Czy tworzyłeś własne klasy w czystym JavaScript?

Raspberry Pi node.js i jak zacząć programować GPIO

Zacznij programować GPIO Raspberry Pi z Node.js. Wprowadzenie do projektu PixPress na GitHub. Sprzęt spotyka JavaScript.

Obraz do tabeli HTML. Przekształcanie obrazu w tabelę HTML.

Obraz do tabeli HTML. Przekształcanie obrazu w tabelę HTML.

Usłyszałem bardzo interesującą historię o ulepszeniach w dostarczaniu mailerów.