Apakah ada perbedaan antara 'currying' dan 'closure' dalam JavaScript?


Jawaban 1:

Membuat penutupan tidak lebih dari mengakses variabel di luar lingkup fungsi. Harap dicatat bahwa fungsi di dalam fungsi bukanlah penutupan. Penutupan selalu digunakan ketika perlu mengakses variabel di luar lingkup fungsi.

Berikut adalah contoh dari Penutupan

Currying adalah mengubah fungsi tunggal dari argumen n menjadi fungsi masing-masing dengan argumen tunggal. Jadi bisa dibilang Currying adalah cara mengurangi fungsi lebih dari satu argumen menjadi fungsi satu argumen.

Berikut adalah contoh fungsi Currying di JavaScript

Fungsi kari menggunakan properti Closures.


Jawaban 2:

Jawaban lainnya benar, dalam Currying dan Penutupan adalah dua konsep yang berbeda. Namun, mereka terkait dalam arti bahwa keduanya dapat digunakan untuk mencapai beberapa hal yang sama.

Ambil contoh penutupan berikut untuk melakukan fungsi yang sama dengan aplikasi sebagian

const makeAdder (x) {
return (y) => {
kembali x + y
}
}

const add9 = makeAdder (9)
console.log (add9 (2)) // 11

Ini sering dilakukan dengan kari seperti itu (menggunakan ramda.js)

const makeAdder = (x, y) => {
 kembali x + y
}
const curriedMakeAdder = R.curry (makeAdder)
const add9 = curriedMakeAdder (9)
console.log (add9 (2)) // 11

Jadi ya, keduanya adalah konsep yang berbeda, tetapi seperti banyak konsep dalam pemrograman, ada banyak cara berbeda untuk menyelesaikan tugas yang sama. Bahkan jika metodenya sangat mirip, ada banyak perbedaan di bawah kap.


Jawaban 3:

Jawaban lainnya benar, dalam Currying dan Penutupan adalah dua konsep yang berbeda. Namun, mereka terkait dalam arti bahwa keduanya dapat digunakan untuk mencapai beberapa hal yang sama.

Ambil contoh penutupan berikut untuk melakukan fungsi yang sama dengan aplikasi sebagian

const makeAdder (x) {
return (y) => {
kembali x + y
}
}

const add9 = makeAdder (9)
console.log (add9 (2)) // 11

Ini sering dilakukan dengan kari seperti itu (menggunakan ramda.js)

const makeAdder = (x, y) => {
 kembali x + y
}
const curriedMakeAdder = R.curry (makeAdder)
const add9 = curriedMakeAdder (9)
console.log (add9 (2)) // 11

Jadi ya, keduanya adalah konsep yang berbeda, tetapi seperti banyak konsep dalam pemrograman, ada banyak cara berbeda untuk menyelesaikan tugas yang sama. Bahkan jika metodenya sangat mirip, ada banyak perbedaan di bawah kap.


Jawaban 4:

Jawaban lainnya benar, dalam Currying dan Penutupan adalah dua konsep yang berbeda. Namun, mereka terkait dalam arti bahwa keduanya dapat digunakan untuk mencapai beberapa hal yang sama.

Ambil contoh penutupan berikut untuk melakukan fungsi yang sama dengan aplikasi sebagian

const makeAdder (x) {
return (y) => {
kembali x + y
}
}

const add9 = makeAdder (9)
console.log (add9 (2)) // 11

Ini sering dilakukan dengan kari seperti itu (menggunakan ramda.js)

const makeAdder = (x, y) => {
 kembali x + y
}
const curriedMakeAdder = R.curry (makeAdder)
const add9 = curriedMakeAdder (9)
console.log (add9 (2)) // 11

Jadi ya, keduanya adalah konsep yang berbeda, tetapi seperti banyak konsep dalam pemrograman, ada banyak cara berbeda untuk menyelesaikan tugas yang sama. Bahkan jika metodenya sangat mirip, ada banyak perbedaan di bawah kap.