деструктурирование ecmascript es7 - PullRequest
0 голосов
/ 31 марта 2020

Есть ли способ упростить следующий код?

let { page_size, current_page } = paging;

this.p_start = page_size * current_page;
this.p_current = current_page;
this.p_dg_current = this.p_current + 1;
this.p_size = page_size;

paging является объектом и имеет свойства page_size и current_page.

Существует ли деструктивный способ назначения страниц paging.page_size и paging.current_page непосредственно для this.p_size и this.p_current?

  let { this.p_size = page_size, this.p_current = current_page } = paging;

  this.p_start = page_size * current_page;
  this.p_dg_current = this.p_current + 1;

Ответы [ 3 ]

1 голос
/ 31 марта 2020

Синтаксис для деструктурирования { propertyName: targetExpression = default }. Хотя у вас есть правильная идея (и вам нужно пропустить let, поскольку вы не объявляете переменные):

({ page_size: this.p_size, current_page: this.p_current } = paging);

this.p_start = this.p_size * this.p_current;
this.p_dg_current = this.p_current + 1;
1 голос
/ 31 марта 2020

Попробуйте вот так, вместо paging1 используйте this

let paging = {page_size : 10, current_page : 9};
let paging1 = {p_size : 0, c_size : 0};
({ page_size : paging1.p_size, current_page : paging1.c_size } = paging)

console.log(paging1.p_size+ ' '+ paging1.c_size)
1 голос
/ 31 марта 2020

Можете ли вы попробовать таким образом

 let { page_size: p_size, current_page: p_current } = paging;
        this.p_start = page_size * current_page;
        this.p_dg_current = this.p_current + 1;
...