Обясните как работает 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 или ссылку на пояснение |
Просто вызывается функция, из функции возвращается результат и из этого результата снова вызывается функция, никакой магии:
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 и так до бесконечности. |
Часовой пояс GMT +3, время: 17:14. |