Показать сообщение отдельно
  #1 (permalink)  
Старый 01.07.2019, 23:36
Аспирант
Отправить личное сообщение для nathan111777 Посмотреть профиль Найти все сообщения от nathan111777
 
Регистрация: 12.05.2019
Сообщений: 44

Правильно ли я понимаю функцию(предназначение) слова this в даном примере?
Есть такой код 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? обращение к новосозданным объектам? или другая какая-то функция у них?

Последний раз редактировалось nathan111777, 01.07.2019 в 23:38.
Ответить с цитированием