色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript curr

衛(wèi)若男1年前10瀏覽0評論

JavaScript中的curr,也被稱為柯里化(currying),是一種函數(shù)式編程技術(shù)。它可以讓你將一個接收多個參數(shù)的函數(shù)轉(zhuǎn)換成每次只接收一個參數(shù)的函數(shù)序列。這些函數(shù)能夠進(jìn)行柯里化的原因是因為它們都返回一個新函數(shù),新函數(shù)又能繼續(xù)接收一個參數(shù)。

例如,我們有一個簡單的函數(shù),用于對兩個數(shù)字進(jìn)行加法:

function addNumbers(a, b) {
return a + b;
}

如果我們現(xiàn)在想要使用這個函數(shù)來重復(fù)添加5,這個時候我們可能想要柯里化這個函數(shù),并創(chuàng)建一個新函數(shù)只輸入一個參數(shù):

function addFiveToNumber(currNumber) {
return addNumbers(5, currNumber);
}

我們現(xiàn)在可以很容易地使用新函數(shù)來添加數(shù)字5到另一個數(shù)字上:

addFiveToNumber(10); // This returns 15

我們也可以將這個新函數(shù)賦值給一個變量,以便隨時都能使用它:

var addFive = addFiveToNumber;
addFive(10); // This returns 15

柯里化的最終目的是可以創(chuàng)建一個能夠接受多個參數(shù)的函數(shù),當(dāng)它只接受一個參數(shù)時,會返回另一個只接受一個參數(shù)的函數(shù),每次輸入一個參數(shù)直到達(dá)到期望的參數(shù)數(shù)量并返回結(jié)果。下面的例子是使用柯里化來創(chuàng)建一個接收三個參數(shù)的函數(shù),我們可以在第一次和第二次調(diào)用中只輸入一個參數(shù)。

function foodSelect(chosenFood) {
return function secondLevel(foodOption) {
return function thirdLevel(drinkOption) {
alert("You chose " + chosenFood + ", " + foodOption + ", and " + drinkOption + ".");
}
}
}
var burgerSelect = foodSelect("Burger");
var cheeseburgerSelect = burgerSelect("Cheeseburger");
cheeseburgerSelect("Coke");
// This alerts "You chose Burger, Cheeseburger, and Coke."

當(dāng)然,在ES6之后,我們可以使用箭頭函數(shù)更簡潔地實現(xiàn)柯里化。下面的例子展示了如何使用箭頭函數(shù)和柯里化將一個字符串轉(zhuǎn)成小寫并將空格轉(zhuǎn)換為下劃線:

const toLowerCase = str =>str.toLowerCase();
const replaceSpacesWithUnderscores = separator =>str =>str.replace(/ /g, separator);
const convertString = replaceSpacesWithUnderscores("_");
const lowerCaseString = convertString(toLowerCase);
lowerCaseString("This is a Test String"); // Returns "this_is_a_test_string"

使用柯里化可以幫助我們創(chuàng)造更具可讀性和可復(fù)用性的函數(shù)。它也可以在需要輸入多個變量的時候,讓代碼變得更加整潔、易于維護(hù)。這個技術(shù)不難掌握,只要理解了如何創(chuàng)建一個能夠返回函數(shù)的函數(shù),就可以開始自己的柯里化實踐了。