0Pricing
JavaScript Academy · Pelajaran

Gaya Tanpa Argumen

Komposisikan fungsi tanpa menamai argumen.

Gaya Tanpa Argumen adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 4 pelajaran total.

Apa Itu Gaya Tanpa Argumen

Gaya tanpa argumen (atau implisit) mendefinisikan fungsi dengan menggabungkan fungsi lain, tanpa menyebutkan argumennya. Argumen tersebut merupakan titik implisit yang diteruskan.

function double(n) { return n * 2; }
const nums = [1, 2, 3];
// pointed: argument named explicitly
console.log(nums.map((n) => double(n))); // [2, 4, 6]
// point-free: no named argument
console.log(nums.map(double));            // [2, 4, 6]

Meneruskan Fungsi secara Langsung

Saat fungsi pemanggil balik hanya meneruskan argumennya ke fungsi lain, Anda dapat meneruskan fungsi tersebut berdasarkan namanya, tanpa membungkusnya.

const len = (s) => s.length;
const words = ["a", "bb", "ccc"];
console.log(words.map((w) => w.length)); // pointed: [1, 2, 3]
console.log(words.map(len));             // point-free: [1, 2, 3]

Komposisi Fungsi

Kode tanpa argumen mengandalkan komposisi: membuat fungsi baru dengan memasukkan keluaran suatu fungsi ke fungsi berikutnya.

const compose = (f, g) => (x) => f(g(x));
const inc = (n) => n + 1;
const double = (n) => n * 2;
const incThenDouble = compose(double, inc);
console.log(incThenDouble(3)); // (3+1)*2 = 8

Fungsi Pembantu pipe

pipe dibaca dari kiri ke kanan, yang menurut banyak orang lebih jelas daripada compose. Fungsi ini menerapkan fungsi-fungsi sesuai urutan.

const pipe = (...fns) => (x) => fns.reduce((acc, f) => f(acc), x);
const inc = (n) => n + 1;
const double = (n) => n * 2;
const f = pipe(inc, double);
console.log(f(3)); // 8

Membangun Alur Pemrosesan

Dengan pipe, Anda dapat menyatakan transformasi dalam beberapa langkah sebagai fungsi bernama tanpa pernah memberi nama pada datanya.

const pipe = (...fns) => (x) => fns.reduce((a, f) => f(a), x);
const trim = (s) => s.trim();
const lower = (s) => s.toLowerCase();
const clean = pipe(trim, lower);
console.log(clean("  HELLO  ")); // "hello"

Pengelompokan Argumen Memungkinkan Gaya Tanpa Argumen

Pengelompokan argumen mengubah fungsi dengan banyak argumen menjadi rangkaian fungsi dengan satu argumen. Hasilnya adalah fungsi satu argumen yang siap dikomposisikan.

const multiply = (a) => (b) => a * b;
const triple = multiply(3);
console.log([1, 2, 3].map(triple)); // [3, 6, 9]

Penerapan Sebagian

Menetapkan beberapa argumen terlebih dahulu menghasilkan fungsi khusus yang dapat Anda teruskan secara langsung, sebagai cara lain untuk menulis kode tanpa argumen.

const add = (a, b) => a + b;
const add10 = add.bind(null, 10);
console.log([1, 2, 3].map(add10)); // [11, 12, 13]

Menyusun Predikat

Anda dapat membuat fungsi pembantu boolean dari fungsi pembantu lain untuk menghasilkan filter tanpa argumen yang rapi, tanpa kerumitan fungsi panah sebaris.

const isEven = (n) => n % 2 === 0;
const negate = (fn) => (x) => !fn(x);
const isOdd = negate(isEven);
console.log([1, 2, 3, 4].filter(isOdd)); // [1, 3]

Pertukaran Keterbacaan

Gaya tanpa argumen dapat terlihat elegan, tetapi jika digunakan secara berlebihan, hasilnya menjadi sulit dipahami. Gunakan gaya ini saat memperjelas maksud (map(double)), dan sebutkan argumennya jika hal itu membantu pemahaman.

const names = ["ada", "bob"];
console.log(names.map((n) => n.toUpperCase())); // ["ADA","BOB"]

Jebakan Referensi Metode

Meneruskan metode berdasarkan namanya dapat membuat metode tersebut kehilangan this. Bungkus atau ikat metode itu jika fungsinya bergantung pada konteks objek.

const calc = {
  factor: 2,
  scale(n) { return n * this.factor; }
};
console.log([1, 2].map(calc.scale.bind(calc))); // [2, 4]

Menyusun Transformasi Nyata

Jika digabungkan, fungsi-fungsi kecil bernama yang disusun menjadi alur pemrosesan menghasilkan aliran data yang deklaratif, mudah diuji, dan tanpa argumen.

const pipe = (...fns) => (x) => fns.reduce((a, f) => f(a), x);
const toNums = (arr) => arr.map(Number);
const onlyPos = (arr) => arr.filter((n) => n > 0);
const sum = (arr) => arr.reduce((a, n) => a + n, 0);
const process = pipe(toNums, onlyPos, sum);
console.log(process(["3", "-1", "4"])); // 7

Pemeriksaan Singkat

Gaya tanpa argumen.

Ringkasan

Gaya tanpa argumen membuat fungsi dengan menyusun fungsi lain tanpa memberi nama pada argumen. Teruskan fungsi berdasarkan referensinya (map(double)), susun dengan compose/pipe, dan gunakan pengelompokan argumen atau penerapan sebagian untuk membuat fungsi satu argumen. Waspadai this yang hilang pada referensi metode, dan sebutkan argumen jika hasilnya lebih mudah dibaca.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Gaya Tanpa Argumen” gratis?

Ya — teks lengkap “Gaya Tanpa Argumen” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Gaya Tanpa Argumen”?

Komposisikan fungsi tanpa menamai argumen. Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai JavaScript Academy?

Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Gaya Tanpa Argumen” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?

Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Fungsi Murni dan Efek Samping
  2. Transformasi Data Deklaratif
  3. Menghindari Mutasi
  4. Gaya Tanpa Argumen
← Kembali ke JavaScript Academy