Kas JavaScriptis on mingit erinevust "lokkimise" ja "sulgemise" vahel?


Vastus 1:

Sulgemise loomine pole midagi muud kui juurdepääsu muutujale väljaspool funktsiooni ulatust. Pange tähele, et funktsiooni sees olev funktsioon ei ole sulgur. Sulgemist kasutatakse alati siis, kui on vaja juurdepääsu muutujatele, mis asuvad väljaspool funktsiooni ulatust.

Siin on sulgede näide

Currying on ühe argumendi ühe funktsiooni teisendamine n funktsiooniks, millel on üks argument. Nii et võite öelda, et Currying on viis, kuidas vähendada mitme argumendi funktsioone ühe argumendi funktsioonideks.

Siin on JavaScripti funktsiooni Currying näide

Currying-funktsioonid kasutavad sulgemiste omadust.


Vastus 2:

Teised vastused on õiged, sest Currying ja Closures on kaks erinevat mõistet. Need on siiski seotud selles mõttes, et mõlemat saab kasutada samade asjade teostamiseks.

Kasutage näiteks järgmist sulgemist, et kasutada sama funktsiooni, mis osalise rakendusega

const makeAdder (x) {
tootlus (y) => {
tagasi x + y
}
}

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

Sageli saab seda teha näiteks lokkimisega (kasutades ramda.js)

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

Nii et jah, need kaks on erinevad mõisted, kuid nagu paljud kontseptsioonid programmeerimisel, on sama ülesande täitmiseks palju erinevaid viise. Isegi kui meetodid on üsna sarnased, toimub kapoti all palju erinevaid.


Vastus 3:

Teised vastused on õiged, sest Currying ja Closures on kaks erinevat mõistet. Need on siiski seotud selles mõttes, et mõlemat saab kasutada samade asjade teostamiseks.

Kasutage näiteks järgmist sulgemist, et kasutada sama funktsiooni, mis osalise rakendusega

const makeAdder (x) {
tootlus (y) => {
tagasi x + y
}
}

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

Sageli saab seda teha näiteks lokkimisega (kasutades ramda.js)

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

Nii et jah, need kaks on erinevad mõisted, kuid nagu paljud kontseptsioonid programmeerimisel, on sama ülesande täitmiseks palju erinevaid viise. Isegi kui meetodid on üsna sarnased, toimub kapoti all palju erinevaid.


Vastus 4:

Teised vastused on õiged, sest Currying ja Closures on kaks erinevat mõistet. Need on siiski seotud selles mõttes, et mõlemat saab kasutada samade asjade teostamiseks.

Kasutage näiteks järgmist sulgemist, et kasutada sama funktsiooni, mis osalise rakendusega

const makeAdder (x) {
tootlus (y) => {
tagasi x + y
}
}

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

Sageli saab seda teha näiteks lokkimisega (kasutades ramda.js)

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

Nii et jah, need kaks on erinevad mõisted, kuid nagu paljud kontseptsioonid programmeerimisel, on sama ülesande täitmiseks palju erinevaid viise. Isegi kui meetodid on üsna sarnased, toimub kapoti all palju erinevaid.