function Module (price, unitPrice, description) {
return {
desc: description,
price: Number(price),
unitPrice: unitPrice, //Czy to nie przeszkadza, że jest ta sama nazwa?
weight: decode(description), // Nie widzi mi funkcji "decode" która jest w prototypie obiektu :(
correct: false
};
}
Module.prototype = {
constructor: Module,
toString: function() {
return "Opis: " + this.desc + ", Cena: " + this.price + ", waga: " + this.weight[0].toString();
},
check: function() {
(this.price * 1e3 / this.weight).toFixed(2) == this.unitPrice ? this.correct = true : this.correct = false;
},
decode: function(string) {
var result = string.match(/(\d\d?\d?,?\d?\d?(?=\s(g|ml)))/g);
return onEach(result, Number);
}
}
Cześć, dopiero zacząłem uczyć się JS - a jestem już starym koniem - więc nie wchodzi to tak jak bym chciał ;/
zawsze tworzyłem nowy obiekt przez:
var m = new Module (11.99, 6.00, "Sok 400 ml");
Teraz chciałbym spróbować utworzyć obiekt bez słowa "new". - robie to w ten sposob
var m = Module (11.99, 6.00, "Sok 400 ml");
Nie wiem czy w ogóle dobrze,
bo pierwszy raz stosuje składnie:
function Nazwa () {
return {
key1: value,
key2: value
}
}
Czy ta forma stworzenia konstruktora nazywa - się literalnym podejsciem ?
główne pytanie:
zgłasza mi "decode is not a function"
próbowałem jeszcze
weight: this.decode(description), //Array
ale nie pomogło.... :(