Rumah  >  Artikel  >  hujung hadapan web  >  Kawasan aplikasi umum penutupan

Kawasan aplikasi umum penutupan

PHPz
PHPzasal
2024-02-18 13:52:05649semak imbas

Kawasan aplikasi umum penutupan

Apakah senario aplikasi penutupan? . Penutupan mempunyai pelbagai senario aplikasi Di bawah kami akan memperkenalkan beberapa senario aplikasi biasa dan memberikan contoh kod khusus.

Kaunter
  1. Penutupan boleh digunakan untuk membuat kaunter persendirian untuk merekodkan bilangan kali peristiwa berlaku. Berikut ialah contoh kod untuk melaksanakan pembilang:
function counter() {
  let count = 0;  // 私有变量

  function increment() {
    count++;
    console.log(count);
  }

  return increment;
}

// 创建计数器实例
var myCounter = counter();
myCounter();  // 输出: 1
myCounter();  // 输出: 2
myCounter();  // 输出: 3

Encapsulation data
  1. Penutupan juga boleh digunakan untuk merangkum maklumat untuk menghalang akses langsung luaran dan pengubahsuaian pembolehubah dalaman. Berikut ialah contoh kod yang merangkum data:
function person() {
  let name = "John";
  let age = 30;

  // 公有方法
  function getName() {
    return name;
  }

  function getAge() {
    return age;
  }

  // 返回一个包含公有方法的对象
  return {
    getName: getName,
    getAge: getAge
  };
}

// 创建 person 实例
var myPerson = person();
console.log(myPerson.getName());  // 输出: "John"
console.log(myPerson.getAge());   // 输出: 30

Caching
  1. Penutupan boleh digunakan untuk melaksanakan fungsi caching mudah untuk mengelakkan pengiraan berulang. Berikut ialah kod sampel yang melaksanakan caching jujukan Fibonacci:
function fibonacci() {
  // 缓存结果
  let cache = {};

  function calc(n) {
    if (n <= 1) {
      return n;
    } else {
      // 检查缓存中是否有结果
      if (cache[n]) {
        return cache[n];
      } else {
        // 计算斐波那契数
        let result = calc(n - 1) + calc(n - 2);
        // 将计算结果缓存起来
        cache[n] = result;
        return result;
      }
    }
  }

  return calc;
}

// 创建斐波那契数列计算函数
var fibonacciSeq = fibonacci();

console.log(fibonacciSeq(5));  // 输出: 5
console.log(fibonacciSeq(10)); // 输出: 55
console.log(fibonacciSeq(5));  // 输出: 5 (从缓存中获取)

Sifat dan kaedah persendirian
  1. Penutupan boleh digunakan untuk mensimulasikan sifat persendirian dan kaedah untuk menghalang akses luaran terus dan pengubahsuaian. Berikut ialah contoh kod yang mensimulasikan sifat dan kaedah persendirian:
function Counter() {
  let count = 0;  // 私有属性

  return {
    // 公有方法
    increment: function() {
      count++;
    },

    decrement: function() {
      count--;
    },

    getValue: function() {
      return count;
    }
  };
}

// 创建 Counter 实例
var myCounter = Counter();
console.log(myCounter.getValue());  // 输出: 0
myCounter.increment();
console.log(myCounter.getValue());  // 输出: 1
myCounter.decrement();
console.log(myCounter.getValue());  // 输出: 0

Di atas ialah beberapa senario penutupan yang biasa digunakan. Kuasa penutupan terletak pada keupayaannya untuk merangkum data dan logik untuk mencapai pengaturcaraan yang lebih modular dan cekap. Dalam pembangunan sebenar, mengikut keperluan dan situasi tertentu, penutupan boleh digunakan sepenuhnya untuk meningkatkan kefungsian dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Kawasan aplikasi umum penutupan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn