Javascript tại sao gán chức năng cho biến
Bài viết này giải thích cách chúng ta gán một hàm đã khai báo cho một biến bất kỳ và kiểm tra xem hàm có chứa tham số hay không. Hàm được liên kết với biến có thể trả về bất kỳ giá trị nào và lưu trữ giá trị đó trong một biến; Show
Ví dụ về gán hàm cho biến bằng JavaScript trong HTMLChúng tôi sẽ gán một hàm cho một biến
Trong nguồn trang hoặc chúng ta có thể viết nó có một trình xử lý (gọi lại) trong trình xử lý sự kiện, (giả sử chúng ta có một phần tử nút với id=”click-me”),
Chúng tôi gọi nó là một biểu thức vì nó không phải là một câu lệnh và nó cần một ngữ cảnh hoặc một nhiệm vụ Hàm được khai báo hơi khác một chút ở chỗ nó là một câu lệnh hoàn chỉnh ngay lập tức
Dạng hàm này là bất biến, nghĩa là không thể thay đổi. 0 được khắc ghi trong ký ức và không thể được giao nhiệm vụ mới. 1 ở trên có thể được giao nhiệm vụ mới bất cứ lúc nàoĐể tìm hiểu thêm về điều này, hãy tìm kiếm, 'khai báo hàm so với biểu thức hàm' và để ý đến thuật ngữ, 'hoisting' để bạn biết cách nó phù hợp với bức tranh này Qua một bên. 2 là từ dành riêng trong JavaScript và chúng tôi không thể sử dụng nó trong ngữ cảnh cửa sổ chung, chỉ bên trong một hàm hoặc dưới dạng thuộc tính đối tượng. Tìm kiếm 3 và bạn có thể tìm thấy điều gì đó về điều này Các chức năng được khai báo không được thực thi ngay lập tức. Chúng được "lưu để sử dụng sau" và sẽ được thực thi sau, khi chúng được gọi (được gọi) Dấu chấm phẩy được sử dụng để phân tách các câu lệnh JavaScript thực thi. Biểu thức hàmHàm JavaScript cũng có thể được xác định bằng biểu thức Một biểu thức chức năng có thể được lưu trữ trong một biến Sau khi một biểu thức hàm đã được lưu trữ trong một biến, biến đó có thể được sử dụng như một hàm Chức năng trên thực sự là một chức năng ẩn danh (một chức năng không có tên) Các hàm được lưu trữ trong các biến không cần tên hàm. Chúng luôn được gọi (được gọi) bằng cách sử dụng tên biến Hàm trên kết thúc bằng dấu chấm phẩy vì nó là một phần của câu lệnh thực thi Hàm xây dựng ()Như bạn đã thấy trong các ví dụ trước, các hàm JavaScript được định nghĩa bằng từ khóa 4Các hàm cũng có thể được xác định bằng hàm tạo hàm JavaScript tích hợp có tên là 5Thí dụconst myFunction = new Function("a", "b", "return a * b"); cho x = myFunction(4, 3); Tự mình thử »Bạn thực sự không phải sử dụng hàm tạo. Ví dụ trên cũng giống như cách viết Thí dụconst myFunction = function(a,b) {return a*b}; cho x = myFunction(4, 3); Tự mình thử »Hầu hết thời gian, bạn có thể tránh sử dụng từ khóa 6 trong JavaScriptcẩu chức năngTrước đó trong hướng dẫn này, bạn đã học về "hoisting" (JavaScript Hoisting) Nâng là hành vi mặc định của JavaScript để di chuyển các khai báo lên đầu phạm vi hiện tại Hoisting áp dụng cho khai báo biến và khai báo hàm Do đó, các hàm JavaScript có thể được gọi trước khi chúng được khai báo chức năng của tôi (5); function myFunction(y) { Các chức năng được xác định bằng một biểu thức không được nâng lên Chức năng tự gọiCác biểu thức chức năng có thể được thực hiện "tự gọi" Một biểu thức tự gọi được gọi (bắt đầu) tự động mà không được gọi Các biểu thức hàm sẽ tự động thực thi nếu biểu thức được theo sau bởi () Bạn không thể tự gọi khai báo hàm Bạn phải thêm dấu ngoặc đơn xung quanh hàm để chỉ ra rằng đó là một biểu thức hàm Thí dụ(function () { Chức năng trên thực sự là một chức năng tự gọi ẩn danh (hàm không có tên) Hàm có thể được sử dụng làm giá trịCác hàm JavaScript có thể được sử dụng làm giá trị Thí dụfunction myFunction(a, b) { cho x = myFunction(4, 3); Tự mình thử »Các hàm JavaScript có thể được sử dụng trong các biểu thức Thí dụfunction myFunction(a, b) { đặt x = myFunction(4, 3) * 2; Tự mình thử »Chức năng là đối tượngToán tử 7 trong JavaScript trả về "hàm" cho các hàmTuy nhiên, các hàm JavaScript tốt nhất có thể được mô tả dưới dạng các đối tượng Hàm JavaScript có cả thuộc tính và phương thức Thuộc tính 8 trả về số đối số nhận được khi hàm được gọiPhương thức 9 trả về hàm dưới dạng một chuỗiThí dụfunction myFunction(a, b) { hãy để văn bản = myFunction. toString(); Tự mình thử »Một hàm được định nghĩa là thuộc tính của một đối tượng, được gọi là một phương thức đối với đối tượng. Hàm mũi tênCác hàm mũi tên cho phép một cú pháp ngắn để viết các biểu thức hàm Bạn không cần từ khóa 4, từ khóa 1 và dấu ngoặc nhọnThí dụ// ES5 // ES6 Các hàm mũi tên không có 2 của riêng chúng. Chúng không phù hợp để xác định các phương thức đối tượngCác chức năng mũi tên không được nâng lên. Chúng phải được xác định trước khi chúng được sử dụng Sử dụng 40 an toàn hơn sử dụng 41, vì biểu thức hàm luôn có giá trị không đổiBạn chỉ có thể bỏ qua từ khóa 1 và dấu ngoặc nhọn nếu hàm là một câu lệnh đơn. Vì điều này, có thể là một thói quen tốt để luôn giữ chúng
Tại sao một chức năng được gán cho một biến?Trong Python, chúng ta có thể gán một hàm cho một biến. Và sử dụng biến đó, chúng ta có thể gọi hàm bao nhiêu lần chúng ta muốn. Qua đó, tăng khả năng sử dụng lại mã . Chỉ cần gán một hàm cho biến mong muốn nhưng không có () i. e. chỉ với tên của chức năng.
Điều gì xảy ra khi chúng ta gán một hàm cho một biến trong JavaScript?Khi bạn gán một đối tượng hàm cho một biến khác, JavaScript không tạo bản sao mới của hàm. Thay vào đó nó làm cho biến mới tham chiếu cùng một đối tượng hàm như ban đầu . Chỉ là hai biến có tên khác nhau đang truy cập cùng một đối tượng hàm cơ bản.
Tại sao bạn có thể lưu trữ hàm dưới dạng giá trị trong một biến?Các hàm được lưu trong biến không cần tên hàm . Chúng luôn được gọi (được gọi) bằng cách sử dụng tên biến. Hàm trên kết thúc bằng dấu chấm phẩy vì nó là một phần của câu lệnh thực thi.
Chúng ta có thể sử dụng hàm làm giá trị biến trong JavaScript không?Các biến được xác định bên trong một hàm không thể được truy cập từ bất kỳ đâu bên ngoài hàm, bởi vì biến chỉ được xác định trong phạm vi của hàm. Tuy nhiên, một hàm có thể truy cập tất cả các biến và hàm được xác định bên trong phạm vi mà nó được xác định . |