Tworzenie obiektów w JS

0

Dzień Dobry,

Jakie są zasadnicze różnice pomiędzy przykładem a i b. ??
Pierwsze co zauważyłem, że dla przykładu a nastąpiło wyświetlenie alertu w czasie ładowania strony, natomiast w przykładzie b po utworzeniu obiektu (za pomocą operatora new) .
Dlaczego jak tworze nowe obiekty dla przykładu a) to nie wyświetla mi się alert??, a dla przykładu b tylko jeden raz??

przykład a) var Product = (function () { }());
przykład b) var Product = function () {};
var Product = (function () {
    alert("dzialam");
    function Product(data) {
        this.id = data.id;
        this.name = data.name;
        this.channel = data.channel;
        this.availability = data.availability;
    }
    
    Product.prototype.getId = function () {
        return this.id;
    };
    
    Product.prototype.setId = function (id) {
        this.id = id;
    };
    
    Product.prototype.getName = function () {
        return this.name;
    };
    
    Product.prototype.setName = function (name) {
        this.name = name;
    };
    
    Product.prototype.getAvailability = function () {
        return this.availability;
    };
    
    Product.prototype.setAvailability = function (availability) {
        this.availability = availability;
    };
    
    return Product;
}());

0

Przykład A to IIFE (w ktorym to m.in. funkcja jest od razu wywoływana), a drugie to przypisanie funkcji do zmiennej, którą PÓŹNIEJ możesz (ale przecież nie musisz) wywołać.

0

Głownie chodzi mi o różnicę przy tworzeniu obiektów za pomocą operatora new.

1 użytkowników online, w tym zalogowanych: 0, gości: 1