zoukankan      html  css  js  c++  java
  • [Functional Programming] Counter example

    document.getElementById("app").innerHTML = `
    <h1>Hello Parcel!</h1>
    <div>
      <button id="plus">+</button>  
      <button id="mius">-</button>  
    </div>
    `;
    
    const addListener = (selector, eventType) => (listener) => {
      const element = document.querySelector(selector);
      element.addEventListener(eventType, listener);
    };
    
    const plusClick = addListener("#plus", "click");
    const miusClick = addListener("#mius", "click");
    
    const hardCode = (newValue) => (broadcaster) => (listener) => {
      return broadcaster((value) => {
        listener(newValue);
      });
    };
    
    const plusOne = hardCode(1)(plusClick)
    const miusOne = hardCode(-1)(miusClick)
    
    const add = (initial) => broadcaster => listener => {
      return broadcaster((value) => {
        listener(initial += value)
      })
    }
    
    const merge = (b1, b2) => listener => {
      b1(listener)
      b2(listener)
    }
    
    const counter = add(0)(merge(plusOne, miusOne))
    counter(console.log)
  • 相关阅读:
    每日日报
    每日日报
    java笔记
    每日日报
    每日日报
    每日日报
    查看当前mysql时区 并设置为北京时间
    springboot 指定配置文件启动, 区分开发和线上分支
    Js Contains方法
    vue $refs的基本用法
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13894510.html
Copyright © 2011-2022 走看看