๐ Counter
Question Descriptionโ
ๅปบ็ซไธๅ่จๆธๅจ๏ผๅ
่จฑ้้ add() ๅ minus() ๆนๆณไพๅขๅ ๆๆธๅฐ่จๆธๅจ็ๅผใ
1. JavaScript Versionโ
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Counter</title>
</head>
<body>
    <p>Count: <span id="count">0</span></p>
    <button id="addBtn">Add</button>
    <button id="minusBtn">Minus</button>
    <script src="counter.js"></script>
</body>
</html>
const createCounter = () => {
  let count = 0;
  const $countEl = document.querySelector('#count');
  const add = () => {
    count++;
    $countEl.textContent = count;
  };
  const minus = () => {
    count--;
    $countEl.textContent = count;
  };
  return { add, minus };
};
const counter = createCounter();
document.querySelector('#addBtn').addEventListener('click', counter.add);
document.querySelector('#minusBtn').addEventListener('click', counter.minus);
2. TypeScript Versionโ
ไฝฟ็จๅทฅๅป ๅฝๅผ createCounter ไพๅปบ็ซ่จๆธๅจ็ฉไปถ๏ผๅฐ add() ๅ minus() ๆนๆณๅๅณ๏ผไธฆๅฐ count ่ฎๆธ่จญๅฎ็บ็งๆ่ฎๆธ๏ผ้ฟๅ
ๅค้จ็ดๆฅๅญๅใ
type CounterType = {
  add: () => void;
  minus: () => void;
};
const createCounter = (): CounterType => {
  let count: number = 0;
  const add = () => {
    count++;
    console.log(count);
  };
  const minus = () => {
    count--;
    console.log(count);
  };
  return { add, minus };
};
const counter = createCounter();
counter.add(); // 1
counter.add(); // 2
counter.minus(); // 1