JavaScript'te Spread Operatörü
ES6 ile birlikte, ... şeklinde yazılan,
spread adı verilen özel bir operatör eklendi.
Spread operatörü bir dizinin önüne geldiğinde, o diziyi ayrı değerlere ayırır ve diziyi, bir fonksiyon çağrısı için gerekli olan parametre kümesine dönüştürür.
Muhtemelen kulağa anlaşılmaz geliyor, bu yüzden
basit bir örnek üzerinden inceleyelim. Diyelim ki
3 parametre alan ve bunların toplamını döndüren
bir fonksiyonumuz var:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Diyelim ki ayrıca üç elemanlı bir dizimiz var:
let arr = [1, 2, 3];
Açıktır ki, bu diziyi olduğu gibi fonksiyona parametre olarak veremeyiz, şu şekilde:
let arr = [1, 2, 3];
func(arr);
Çünkü bu durumda dizinin tamamı fonksiyonun ilk parametresine geçer, oysa bu parametreye bir sayı iletilmelidir (ve diğer parametrelere de).
Elbette şu şekilde de yapılabilir:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Ancak daha basit bir yolu var - spread operatörünü kullanmak:
let arr = [1, 2, 3];
func(...arr);
Bir değişken kullanmak zorunlu değildir - spread doğrudan diziye de uygulanabilir:
func(...[1, 2, 3]);
Bir dizi verilsin:
let arr = [1, 2, 3, 4, 5];
Ayrıca bir fonksiyon verilsin:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Verilen fonksiyonu kullanarak dizinin elemanlarının toplamını bulun.