Rumah > hujung hadapan web > tutorial js > Kawasan aplikasi umum penutupan

Kawasan aplikasi umum penutupan

PHPz
Lepaskan: 2024-02-18 13:52:05
asal
741 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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 (从缓存中获取)
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan