2017-02-10 2 views
0

Im нового для ES6, некоторые вещи, которые я знаю, но все еще немного смущенно о следующих вещах, кто может предоставить мне некоторые подробности об этом новом синтаксисе:ES 6 новый синтаксис о сопзИ

После всего лишь образец фрагмент коды :

1. const { action, stage, conditions } = this.control.ajaxInfo; 

Что именно называется? Что именно этот оператор будет делать ?, я попробовал это в консоли, которую он выполнил без каких-либо ошибок. Но когда я попытался проследить эти 3 константы, это показывает неопределенный.

2. const getControlBindings = (control, context) => ({ 
    control, 
    context, 
    setAnswer, 
    ajaxAction 
    }); 

Это функция с некоторыми = и => нотации, то, что об этом типе нового синтаксиса:

getControlBindings((control, context) => { 
    control, 
    context, 
    setAnswer, 
    ajaxAction 
}) 

Тогда что является основным отличием между этими двумя типа функций? Пожалуйста, помогите мне занизить это.

+2

[Destructuring] (http://stackoverflow.com/documentation/search?tag=javascript&query=destructuring), [Функции стрелок] (http://stackoverflow.com/documentation/javascript/5007/arrow-functions#t=201702100709485870422) – Andreas

ответ

2

1) Это означает, что ваш объект this.control.ajaxInfo должен содержать свойства с этими именами, которые будут уничтожены в переменных слева. Для более см Destructing object in JS

var controls = { 
 
    action: 'a', 
 
    stage: 'b', 
 
    conditions: 'c', 
 
} 
 

 
const { action, stage, conditions } = controls; 
 

 
console.log(action);

2) Это называется arrow function. Они также являются функциями, но с некоторыми нюансами.

const getControlBindings = (control, context) => ({ 
    control, 
    context, 
    setAnswer, 
    ajaxAction 
    }); 

Это функция, которая принимает контроль параметров и контекст и возвращает объект с формой

{ 
    control, 
    context, 
    setAnswer, 
    ajaxAction 
} 

Everythinig после => является телом функции стрелки. Вы можете добавить стрелок функции тела кронштейна с

const getControlBindings = (control, context) => { return ({ 
     control, 
     context, 
     setAnswer, 
     ajaxAction 
     }); }; 

А если добавить скобки тела, вы должны использовать return заявления в явном виде, если не добавлены кронштейны тела, вы должны написать один оператор, который будет возвращен из функция.

+0

Спасибо @Suren Srapyan, ничего страшного объяснения, это означает: 1. этот синтаксис создает 3 константы из одного объекта, правильно? 2. Этот синтаксис создает постоянный объект. – Shree

+0

1) да, 2) нет, он не создает объект const, но создает const 'getControlBindings', поэтому он больше не может ссылаться на другую функцию. он привязан к текущей функции. Возвращенный объект не будет const –

+0

Я был немного смущен, теперь я получил его. Спасибо @Suren Srapyan. – Shree

3
  1. ли пример разрушающих объекта в ES2016/ES6. В этом случае 3 отдельных const со значениями параметра с тем же именем, указанным в левой части равных. т.е. действие, стадию, условие.

    var controls = { 
        action: 'GET', 
        stage: 'Test' 
    } 
    
    const { action, stage} = controls; 
    
    console.log(action) // Outputs GET 
    
  2. Является примером функции стрелки.В первом случае и есть создать функцию getControllsBinding стрелки, которая принимает параметры управления и контекста и возвращает объект с

    {control, 
    context, 
    setAnswer, 
    ajaxAction } 
    

Другое определение, как ваши передавая функцию стрелки в качестве параметра функции getControllsBinding. Обратите внимание, есть небольшая проблема синтаксиса в этом вам нужно обернуть

{control, 
    context, 
    setAnswer, 
    ajaxAction } 

жгутов скобку, как показано ниже

({control, 
    context, 
    setAnswer, 
    ajaxAction }) 

Ниже приведены некоторые хороший материал, чтобы начать с ES2015/ES6

функции Стрелка: https://leanpub.com/understandinges6/read#leanpub-auto-arrow-functions

Разрушение объекта: https://leanpub.com/understandinges6/read#leanpub-auto-object-destructuring

+0

Хорошие ссылки @Абхишек, спасибо. – Shree

Смежные вопросы