Đóng trong javascript

Một function có thể truy cập tất cả các biến được xác định bên trong hàm, như thế này. bên trong chức năng, như thế này

Nhưng function cũng có thể truy cập các biến được xác định bên ngoài hàm, như thế này. bên ngoài chức năng, như thế này

Trong ví dụ cuối cùng, A là một biến toàn cầu. a là biến toàn cục

Trong một trang web, các biến toàn cầu thuộc về trang

Các biến toàn cầu có thể được sử dụng [và thay đổi] bởi tất cả các lệnh khác trong trang

Trong ví dụ đầu tiên, A là một biến cục bộ. a là biến cục bộ

Một biến cục bộ chỉ có thể được sử dụng bên trong hàm mà nó đã được xác định. Nó bị ẩn khỏi các chức năng khác và kịch bản khác

Các biến toàn cầu và cục bộ có cùng tên là các biến khác nhau. Sửa đổi cái này, không sửa đổi cái khác

Các biến được tạo mà không có từ khóa khai báo [_______2, let hoặc const] luôn luôn toàn cầu, ngay cả khi chúng được tạo bên trong một hàm. không có từ khóa khai báo [var, let hoặc const] luôn là toàn cục, ngay cả khi chúng được tạo bên trong một hàm

Change time

Các biến toàn cầu trực tiếp cho đến khi trang bị loại bỏ, giống như khi bạn điều hướng đến một trang khác hoặc đóng cửa sổ

Các biến địa phương có cuộc sống ngắn ngủi. Chúng được tạo khi hàm được gọi và xóa khi kết thúc hàm

Một vấn đề khó giải quyết

Giả sử bạn muốn sử dụng một biến để đếm một cái gì đó và bạn muốn bộ đếm này có sẵn cho tất cả các chức năng

Bạn có thể sử dụng một biến toàn cầu và function để tăng bộ đếm

Thí dụ

// start counter counter = 0;
let counter = 0;

// Hàm để tăng cường đối phó add [] { 
function add[] {
  counter += 1;
}

// gọi thêm [] 3 lần thêm [];
add[];
add[];
add[];

// Hiện tại sẽ là 3

Please tự mình thử »

Có một vấn đề với giải pháp trên. Bất kỳ mã nào trên trang đều có thể thay đổi bộ đếm mà không cần gọi thêm []

Bộ đếm phải là bộ cục bộ cho chức năng add[], để ngăn mã khác thay đổi nó

Thí dụ

// start counter counter = 0;
let counter = 0;

// Hàm để tăng cường đối phó add [] { 
function add[] {
  let counter = 0;
  counter += 1;
}

// gọi thêm [] 3 lần thêm [];
add[];
add[];
add[];

// Hiện tại sẽ là 3

Please tự mình thử »

Có một vấn đề với giải pháp trên. Bất kỳ mã nào trên trang đều có thể thay đổi bộ đếm mà không cần gọi thêm []

Bộ đếm phải là bộ cục bộ cho chức năng add[], để ngăn mã khác thay đổi nó

Thí dụ

// bắt đầu bộ đếm đối số = 0;
function add[] {
  let counter = 0;
  counter += 1;
  return counter;
}

// gọi thêm [] 3 lần thêm [];
add[];
add[];
add[];

// Hiện tại sẽ là 3

Please tự mình thử »

Có một vấn đề với giải pháp trên. Bất kỳ mã nào trên trang đều có thể thay đổi bộ đếm mà không cần gọi thêm []

Bộ đếm phải là bộ cục bộ cho chức năng add[], để ngăn mã khác thay đổi nó. Hàm bên trong JavaScript có thể giải quyết vấn đề này

// Hàm để tăng thêm đối tượng quan trọng [] { 

// gọi thêm[] 3 lầnadd[];

// Bộ đếm bây giờ sẽ là 3. nhưng đó là 0

Nó không hoạt động vì chúng tôi hiển thị bộ đếm toàn cầu thay vì bộ đếm cục bộ

Chúng ta có thể xóa bộ đếm toàn cầu và truy cập bộ đếm cục bộ bằng cách để chức năng trả về nó

Thí dụ

// bắt đầu bộ đếm đối số = 0;
  let counter = 0;
  function plus[] {counter += 1;}
  plus[];   
  return counter;
}

Please tự mình thử »

Có một vấn đề với giải pháp trên. Bất kỳ mã nào trên trang đều có thể thay đổi bộ đếm mà không cần gọi thêm []

Bộ đếm phải là bộ cục bộ cho chức năng add[], để ngăn mã khác thay đổi nó

// Hàm để tăng thêm đối tượng quan trọng [] { 

// gọi thêm[] 3 lầnadd[];

// Bộ đếm bây giờ sẽ là 3. nhưng đó là 0

Thí dụ

// start counter counter = 0;
  let counter = 0;
  return function [] { counter += 1;
}][];

// Hàm để tăng cường đối phó add [] { 
add[];
add[];

// gọi thêm[] 3 lần thêm[];

Please tự mình thử »

Có một vấn đề với giải pháp trên. Bất kỳ mã nào trên trang đều có thể thay đổi bộ đếm mà không cần gọi thêm []

Bộ đếm phải là bộ cục bộ cho chức năng add[], để ngăn mã khác thay đổi nó

// Hàm để tăng thêm đối tượng quan trọng [] { 

// gọi thêm[] 3 lầnadd[];

// Bộ đếm bây giờ sẽ là 3. nhưng đó là 0 lần đóng cửa. Nó giúp một hàm có thể có các biến "riêng tư"

Nó không hoạt động vì chúng tôi hiển thị bộ đếm toàn cầu thay vì bộ đếm cục bộ

Chúng ta có thể xóa bộ đếm toàn cầu và truy cập bộ đếm cục bộ bằng cách để chức năng trả về nó


Đóng cửa là gì giải thích?

Đóng cửa là kết thúc hoặc đóng cửa của một cái gì đó. Nó có thể là vật lý - giống như việc đóng cửa thư viện địa phương của bạn - hoặc tình cảm, giống như sự đóng cửa mà bạn trải nghiệm khi cuối cùng bạn cũng đi đến kết thúc một mối tình lãng mạn. Đóng cửa đến từ Claus Latin ["Shut"], và nó có nhiều sắc thái ý nghĩa khác nhau. kết thúc hoặc kết thúc một thứ gì đó . Nó có thể là vật chất - như việc đóng cửa thư viện địa phương của bạn - hoặc cảm xúc, như sự đóng cửa mà bạn trải qua khi cuối cùng bạn cũng chấp nhận kết thúc một mối tình lãng mạn. Đóng cửa xuất phát từ mệnh đề tiếng Latinh ["đóng cửa"], và nó có nhiều sắc thái ý nghĩa khác nhau.

Đóng cửa trong JavaScript với ví dụ thời gian thực là gì?

Trong JavaScript, đóng cửa được định nghĩa là các hàm bên trong có quyền truy cập vào các biến và tham số của hàm bên ngoài ngay cả sau khi hàm bên ngoài đã quay trở lại. hàm bên trong có quyền truy cập vào các biến và tham số của hàm bên ngoài ngay cả sau khi hàm bên ngoài đã trả về .

Đóng cửa và lời hứa trong JavaScript là gì?

Đóng cửa và lời hứa là những khái niệm khác nhau. Việc đóng cửa đề cập đến phạm vi của các biến trong đó như lời hứa được sử dụng để 'hứa' rằng một hành động trên một cái gì đó sẽ xảy ra khi nó được thực hiện trên một hành động không đồng bộ. Việc đóng đề cập đến phạm vi của các biến trong đó như lời hứa được sử dụng để 'hứa hẹn' rằng một hành động đối với điều gì đó sẽ xảy ra khi hành động đó được thực hiện trên một hành động không đồng bộ

Chủ Đề