2016-06-06 13 views
42

Ciągle widzę funkcji, które wyglądają jak to w kodzie pracuję nad:Co robią listy parametrów funkcji w nawiasach klamrowych w es6?

const func = ({ param1, param2 }) => { 
    //do stuff 
} 

Co dokładnie to robi? Mam problem ze znalezieniem go w google, ponieważ nie jestem nawet pewien, jak to się nazywa, ani jak opisać go w wyszukiwarce Google.

+0

jest to funkcja, która jest strzałka wprowadza jako część ES2015 – brk

+6

wiem, co funkcja jest strzałka. Pytam o parametry funkcji wewnątrz nawiasów klamrowych. – Nathan

Odpowiedz

39

Jest to destructuring, ale zawarte w parametrach. Odpowiednikiem bez destrukturyzacji będzie:

const func = o => { 
    var param1 = o.param1; 
    var param2 = o.param2; 
    //do stuff 
} 
+1

Aby upewnić się, że rozumiem poprawnie, zasadniczo oznacza to, że obiekt zawierający te właściwości zostanie przekazany do funkcji, a następnie w ramach funkcji, właściwości będą automatycznie dostępne po prostu używając ich nazwy? – Nathan

+0

podniosłem twoje z głosowaniem, byłem trochę za późno :) –

+3

@Nathan Tak, zobacz w szczególności [rozdział o destrukcji obiektu] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/ Operatory/Destructuring_assignment # Object_destructuring). Zauważ jednak, że aktualizacje zmiennych nie zaktualizują oryginalnych właściwości obiektu - nie przypomina to tworzenia odniesienia do oryginalnej wartości. –

2

To przekazuje obiekt jako parametr. Tak więc parametr funkcji początkowo przyjmuje POJO (zwykły stary obiekt JS), ale przy użyciu dekonstrukcji obiektu takiej, jakiej używasz.

To jest po prostu skrótem {param1: param1, param2: param2}

Powiązane problemy