Есть такой код Node.js код:
module.exports = function Cart(oldCart) {
this.items = oldCart.items || {};
this.totalQty = oldCart.totalQty || 0;
this.totalPrice = oldCart.totalPrice || 0;
this.add = function(item, id) {
var storedItem = this.items[id];
if (!storedItem) {
storedItem = this.items[id] = {item: item, qty: 0, price: 0};
}
storedItem.qty++;
storedItem.price = storedItem.item.price * storedItem.qty;
this.totalQty++;
this.totalPrice += storedItem.item.price;
};
this.reduceByOne = function(id) {
this.items[id].qty--;
this.items[id].price -= this.items[id].item.price;
this.totalQty--;
this.totalPrice -= this.items[id].item.price;
if (this.items[id].qty <= 0) {
delete this.items[id];
}
};
Насколько я понял ключевое слово this служит для того что б обратиться к новосозданному обьекту.
Тоесть если взять только эти строки:
this.items = oldCart.items || {};
this.totalQty = oldCart.totalQty || 0;
this.totalPrice = oldCart.totalPrice || 0;
то новосозданный обьект выглядит вот так:
var Cart = {
items = oldCart.items || {},
totalQty = oldCart.totalQty || 0,
totalPrice = oldCart.totalPrice || 0
}
Правильно понял?
А вот дальше интереснее, дальше такой код :
this.add = function(item, id)
и еще одна функция:
this.reduceByOne = function(id)
А для чего нужны эти два this? обращение к новосозданным объектам? или другая какая-то функция у них?