Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2019, 10:12
Новичок на форуме
Отправить личное сообщение для ifnvhdkgty Посмотреть профиль Найти все сообщения от ifnvhdkgty
 
Регистрация: 12.08.2019
Сообщений: 5

Обясните как работает this и ()
Обясните, на аналогичных примерах как тут совмещены this и последовательное исполнение()
Как это работает я непойму никак. Как return подставлет this в последнюю строку.
Самый простой вариант аналога того что ниже можно


let ladder = {
step: 0,
up() {
this.step++;
return this;
},
down() {
this.step--;
return this;
},
showStep: function() { // показывает текущую ступеньку
dw( this.step );
return this;
}
};

ladder.up().up().down().showStep(); // 1


или ссылку на пояснение
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2019, 22:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

Просто вызывается функция, из функции возвращается результат и из этого результата снова вызывается функция, никакой магии:
function a() {
  return 1
}

a() //1

function b() {
  return {
    some: 1
  }
}

b().some //1

function c() {
  return {
    b: b
  }
}

c().b().some //1


Если же проблема с this то тут тоже всё просто.
Когда вызываешь obj.some(), this внутри some становится obj, соответственно
let ladder = {
  some() {
    return this;
  }
}
при вызове ladder.some() равносилен
let ladder = {
  some() {
    return ladder;
  }
}
, т.е. каждый резульат вызова ladder.some() равен ladder, а значит у него снова можно вызвать some и так до бесконечности.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как это работает? )) innowed Общие вопросы Javascript 3 03.02.2017 14:15
Как работает NodeJS erkesh Node.JS 2 24.07.2016 18:31
Как же работает fireViewEvent() в ViewController Пролетарий ExtJS 10 06.06.2015 17:18
опишите, как работает функция Egor1324 AJAX и COMET 5 18.02.2015 08:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25