柯里化(Currying)

安装loadsh

npm i --save lodash

  1. function curry(f) { // curry(f) 执行柯里化转换
  2. return function(a) {
  3. return function(b) {
  4. return f(a, b);
  5. };
  6. };
  7. }
  8. // 用法
  9. function sum(a, b) {
  10. return a + b;
  11. }
  12. let curriedSum = curry(sum);
  13. // console.log("🚀 ~ file: generator.js ~ line 15 ~ curriedSum", curriedSum(1));
  14. var _ = require('lodash');
  15. function log(date, importance, message) {
  16. console.log(`[${date.getHours()}:${date.getMinutes()}] [${importance}] ${message}`);
  17. }
  18. log = _.curry(log);
  19. // log(new Date(), "DEBUG", "some debug");
  20. // log(new Date())("hello")("do something")
  21. let logNow = log(new Date());
  22. logNow("hello x2")("sss")

Blob

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div>
  11. <p>hello</p>
  12. </div>
  13. <input type="file" id="input">
  14. <a id="btn">下载</a>
  15. <div class="ims" id="imgs">
  16. </div>
  17. </body>
  18. <script>
  19. let str = `<div>
  20. <p>hello</p>
  21. </div>`
  22. let myblod = new Blob([str], {
  23. type: 'text/html'
  24. })
  25. myblod.text().then(res => console.log(res))
  26. btn.onclick = function (e) {
  27. this.setAttribute('download', 'test.html')
  28. this.href = URL.createObjectURL(myblod)
  29. }
  30. input.onchange = function (e) {
  31. console.log(e.target.files[0])
  32. let file = e.target.files[0];
  33. // let a = document.createElement('a')
  34. // a.setAttribute('download', file.name);
  35. // a.href = URL.createObjectURL(file)
  36. // a.click()
  37. let img = new Image();
  38. let fileRead = new FileReader();
  39. document.body.append(img)
  40. fileRead.onload = function(e){
  41. img.src = fileRead.result;
  42. }
  43. fileRead.readAsDataURL(file)
  44. // img.src = URL.createObjectURL(file)
  45. // imgs.append(img)
  46. }
  47. </script>
  48. </html>