關於逆向Windows視窗程式
阿新 • • 發佈:2022-05-22
有遇到如下的問題,初始看到的時候並沒有一些解決思路,所以去看了一下函式柯里化。
柯里化(Currying)指的是將原來接受兩個引數的函式變成新的接受一個引數的函式的過程。新的函式返回一個以原有第二個引數為引數的函式。
add(1); // 1 add(1)(2); // 3 add(1)(2)(3);// 6 add(1)(2, 3); // 6 add(1, 2)(3); // 6知識點:物件(包括陣列,物件,函式等)參與原始運算如算術或邏輯運算時,會無參呼叫其 toString 或者 valueOf 方法得到一個原始值,然後用這個原始值參與運算,。能夠持續呼叫,必然返回函式,能夠當成數值,那隻能是因為它實現了 toString 或者 valueOf 方法。
varcurring = () => { var result = []; var add = (...args) => { result = result.concat(args); return add; }; add.toString = () => { return result.reduce((pre, cur) => pre + cur, 0); } return add; }; var add = curring(); console.log(add(1)(2)(3)(4)(5)(6)); //21 add= curring(); console.log(add(1, 2)(3, 4)(5, 6)); //21 add = curring(); console.log(add(1, 2, 3, 4, 5, 6)); //21
看了一點,還是沒吃透,後面再說,肝不動了.........
專案中感覺也不太用得到,這個是在情況下會用到呢,疑惑。
推薦閱讀:https://juejin.cn/post/6864378349512065038