Hàm là một khối mã được thiết kế để thực hiện một tác vụ và được thực thi khi nó được gọi hoặc gọi
Có 3 cách viết hàm trong JavaScript
- Khai báo hàm
- Biểu thức hàm
- Chức năng mũi tên
1. Khai báo hàm. Khai báo hàm là cách truyền thống để định nghĩa một hàm. Nó tương tự như cách chúng ta định nghĩa một hàm trong các ngôn ngữ lập trình khác. Chúng ta bắt đầu khai báo bằng từ khóa “hàm”. Sau đó, chúng tôi viết tên hàm và sau đó tham số
Dưới đây là ví dụ minh họa việc sử dụng Khai báo hàm
Javascript
543
544
545
546____147
548
50
51
Sau khi xác định một chức năng, chúng tôi gọi nó bất cứ khi nào chức năng được yêu cầu
đầu ra
5
2. Biểu thức hàm. Biểu thức hàm là một cách khác để xác định hàm trong JavaScript. Ở đây chúng ta định nghĩa một hàm sử dụng một biến và lưu trữ giá trị trả về trong biến đó
Dưới đây là ví dụ minh họa việc sử dụng Biểu thức Hàm
Javascript
52
53____144
55
546
57
548
59
51
Ở đây, toàn bộ hàm là một biểu thức và giá trị trả về được lưu trữ trong biến. Chúng ta sử dụng tên biến để gọi hàm
đầu ra
5
3. Hàm mũi tên. Các chức năng mũi tên được giới thiệu trong phiên bản ES6 của JavaScript. Nó được sử dụng để rút ngắn mã. Ở đây chúng tôi không sử dụng từ khóa “chức năng” mà sử dụng ký hiệu mũi tên
Dưới đây là ví dụ minh họa việc sử dụng Arrow Function
Ví dụ
Javascript
51
52
53
Điều này rút ngắn mã thành một dòng so với các phương pháp khác. Trong một dòng mã, hàm trả về hoàn toàn
đầu ra
5
Ghi chú. Khi cần bao gồm nhiều dòng mã, chúng tôi sử dụng dấu ngoặc. Ngoài ra, khi có nhiều dòng mã trong ngoặc, chúng ta nên viết rõ ràng return để trả về giá trị từ hàm
Đây là những ghi chú dựa trên Khóa học video JavaScript dành cho người mới bắt đầu của tôi. Đó là một cách tiếp cận thú vị, nặng nhọc để học JavaScript hiện đại từ đầu
Sử dụng mã BEGINNERJS để được giảm thêm $10
JavaScript mới bắt đầu. com
JavaScript, Chức năng Chỉnh sửa bài đăng
Một điều bạn sẽ nghe thấy thường xuyên khi tìm hiểu JavaScript là các hàm là "công dân hạng nhất"
Bản thân các hàm JavaScript là các giá trị và chúng có thể được lưu trữ trong các biến và được chuyển vào các hàm khác
Giá trị trong JavaScript là gì?
Chúng tôi biết rằng trong các ví dụ bên dưới 👇 rằng
548 và
549 là các giá trị
56
Đó là những giá trị là số, hoặc chuỗi hoặc booleans
Điều thú vị về JavaScript là các chức năng có thể được
- truyền vào các chức năng khác
- được lưu trữ trong các biến,
- di chuyển xung quanh giống như bất kỳ phần dữ liệu nào khác trong JavaScript
Điều đó không đúng với mọi ngôn ngữ lập trình khác
Hãy bắt đầu bằng cách xem cách bạn có thể đặt một hàm vào một biến, sau đó xem các cách khác nhau để khai báo hàm
Tạo một tệp mới
570 trong thư mục
571
59
Thêm nhật ký "nó hoạt động. " và quay lại tệp
572 và thay đổi đường dẫn trong thuộc tính nguồn tập lệnh như được hiển thị ở trên 👆 và làm mới trình duyệt để đảm bảo nó hoạt động
Chúng ta đã biết một cách để khai báo một hàm và đó là sử dụng từ khóa function, như vậy 👇
51
Hàm ẩn danh
Hãy xem xét một số tùy chọn khác mà chúng ta có khi khai báo hàm, bắt đầu với hàm ẩn danh, là hàm không có tên
Để biến
573 thành một hàm ẩn danh, bạn sẽ sửa đổi nó như thế này 👇
53
Tuy nhiên, đó không phải là JavaScript hợp lệ. Nếu bạn thử chạy nó trong bảng điều khiển, bạn sẽ thấy lỗi có nội dung 👇
Lỗi cú pháp. Câu lệnh hàm yêu cầu tên hàm
Các hàm ẩn danh chỉ hợp lệ trong một số trường hợp sử dụng, chẳng hạn như sử dụng chúng trong hàm gọi lại [chúng ta sẽ tìm hiểu thêm về điều đó sau] cũng như trong IIFE [biểu thức hàm được gọi ngay lập tức]. Ví dụ này không phải là trường hợp sử dụng hợp lệ
Tại sao bạn lại muốn có một chức năng ẩn danh?
Biểu thức hàm
Cách tiếp theo chúng ta sẽ đề cập đến cách khai báo một hàm sẽ giúp giải thích điều đó, đó là một biểu thức hàm
Thêm một bình luận phía trên chức năng đó xác định rằng đó là một chức năng ẩn danh, sau đó sao chép chức năng đó và đưa ra bình luận
Dán mã đã sao chép bên dưới chức năng nhận xét
Cách tiếp theo để khai báo một hàm là một biểu thức hàm. Một biểu thức hàm là khi bạn lưu trữ một hàm dưới dạng một giá trị trong một biến. 👇
54
Trong đoạn mã trên 👆, chúng tôi đã sử dụng hàm ẩn danh và đưa nó vào một biến
Nếu bạn làm mới trang, bạn sẽ thấy rằng trong bảng điều khiển, chúng tôi có sẵn
574 và chúng tôi có thể gọi nó như chúng tôi đã làm trong các video trước
Khả năng lưu trữ một hàm trong một biến là điều khiến mọi người nói rằng các hàm là "công dân hạng nhất"
Bạn có thể bắt gặp các nhà phát triển nói rằng không sử dụng các biểu thức hàm vì họ đã từng đưa ra các lỗi vô ích
Trước đây, các lỗi chức năng ẩn danh sẽ chỉ cho bạn biết rằng chúng xảy ra trong một chức năng ẩn danh mà không cung cấp cho bạn bất kỳ manh mối nào về nơi xảy ra lỗi. Tuy nhiên giờ lỗi dev tool đỡ hơn
Đây là một ví dụ minh họa ý nghĩa của chúng 👇
57
Trong trường hợp của chúng tôi, nó hiện cho bạn biết điều đó xảy ra bên trong tiến sĩ ở dòng 12
Mặc dù về mặt kỹ thuật, hàm này là một hàm ẩn danh không có tên, nhưng giờ đây các trình duyệt sẽ suy ra tên của hàm từ tên biến và sử dụng tên đó trong các lỗi
Sự khác biệt giữa khai báo hàm và biểu thức hàm là gì?
Sự khác biệt giữa việc khai báo hàm và biểu thức hàm là gì?
cẩu
Chỉ có một sự khác biệt thực sự, đó là cách chúng hoạt động trong một thứ gọi là cẩu. Chúng tôi sẽ xem xét vấn đề này một cách chi tiết trong một video trong tương lai nhưng hiện tại chúng tôi sẽ chỉ đề cập nhanh đến khái niệm này
Nhân đôi hàm
573 và đặt tên là
576, chẳng hạn như 👇
59
Giả sử ngay trước hàm
573 đầu tiên, chúng tôi đã gọi
573 và chuyển cho nó giá trị là "wes", như được hiển thị bên dưới 👇, bạn có nghĩ rằng mã sẽ chạy không?
Nếu bạn chạy một chức năng trước khi xác định nó, nó có hoạt động không?
52
Nó có hoạt động không?
Không. Bạn nhận được một lỗi như
Lỗi tham chiếu chưa bắt. Không thể truy cập 'doctorize' trước khi khởi tạo tại cách tạo chức năng. js. 78 [ẩn danh] @ cách-tạo-thành-hàm. js. 78
Còn về
576 thì sao?
54
Nó hoạt động
Tại sao một khai báo hàm hoạt động nếu bạn gọi nó trước khi định nghĩa nó, nhưng một biểu thức hàm thì không, đặc biệt là khi chúng ta đã tạo chính xác cùng một hàm trong cả hai trường hợp?
Các hàm được khai báo với từ khóa function được gọi là hoisted
JavaScript sẽ lấy tất cả các chức năng với từ khóa chức năng và kéo chúng lên, lên, lên và nói "bạn là một chức năng, bạn thuộc về đầu tệp". Điều đó có nghĩa là bất cứ nơi nào bạn gọi hàm, nó sẽ có sẵn cho bạn
JavaScript không nâng các hàm biến
Tại sao điều đó lại hữu ích?
Rất hiếm khi, Wes chưa bao giờ sử dụng điều đó trong toàn bộ sự nghiệp của mình ngoại trừ những trường hợp sử dụng nhỏ
Hoisting là một câu hỏi phỏng vấn mà bạn có thể được hỏi
Về cơ bản, điều đó có nghĩa là JavaScript sẽ nhận các chức năng và đưa chúng lên đầu mã trước khi chúng được gọi. Điều này cho chúng ta khả năng chạy một chức năng trước khi nó được xác định
Xóa hàm
576 khỏi tệp JavaScript chỉ để lại biểu thức hàm
Hàm mũi tên
Cách tiếp theo để tạo một hàm là sử dụng hàm mũi tên
Bản thân các hàm mũi tên có một số cách khai báo khác nhau. Chúng là phần bổ sung mới hơn cho JavaScript và đã được thêm vào trong vài năm qua
Họ có một vài lợi ích
- cú pháp ngắn gọn và có xu hướng ngắn hơn. cho phép viết các chức năng một dòng
- không có phạm vi riêng liên quan đến từ khóa
5
91 [chúng tôi sẽ đề cập đến từ khóa5
91 trong một video trong tương lai]
Hàm mũi tên cũng là hàm ẩn danh, có nghĩa là không có cách nào để khai báo hàm mũi tên theo cách chúng ta khai báo hàm
593. Bạn luôn phải dán nó vào một biến
Để minh họa điều này, chúng ta sẽ bắt đầu bằng cách viết một hàm thông thường. 👇
59
Hàm này sẽ lấy inch và trả về centimet
Hãy dùng thử trong trình duyệt
Đây là một chức năng khá đơn giản, nhưng nó vẫn chiếm 4 dòng mã
Chúng ta có thể làm cho nó ngắn hơn một chút bằng cách thay vì tạo một biến và sau đó trả về một biến, chúng ta chỉ có thể trả về phép tính trực tiếp
590
Ghi chú. Bạn có thể nhận thấy trong 👆 ảnh chụp màn hình ở trên rằng dòng mã có
594 hiện bị mờ đi. Đó là bởi vì mã đó sẽ không bao giờ đạt được, vì chúng tôi đang quay lại dòng mã phía trên nó. Khi bạn quay lại từ một chức năng, chức năng đó sẽ ngừng chạy
Bây giờ chúng ta có thể chuyển đổi nó thành một hàm ẩn danh như một bước trên con đường biến nó thành một hàm mũi tên
591
Làm mới trang để kiểm tra xem nó có còn hoạt động hay không. Tất cả những gì chúng tôi đã làm là biến nó thành một hàm ẩn danh và lưu trữ nó trong một biến
Các cách khác nhau để viết các hàm mũi tên
Bây giờ hãy chuyển đổi nó thành hàm mũi tên, chúng ta có thể thực hiện theo một số cách khác nhau
Thay vì viết chức năng từ, chúng tôi sẽ xóa nó như vậy 👇
592
Bây giờ chúng ta sẽ đi đến bên phải của dấu ngoặc đơn và thêm cái được gọi là mũi tên mập
595
Trong lập trình,
596 được gọi là mũi tên gầy và
595 được gọi là mũi tên béo
593
Khi bạn lưu, bạn có thể nhận thấy rằng Prettier đã sửa đổi hàm cho bạn và xóa dấu ngoặc đơn, đây không phải là điều chúng tôi muốn vì chúng tôi đang cố gắng thay đổi nó thành hàm mũi tên theo các bước. Để vô hiệu hóa điều đó, hãy thêm
598 ngay phía trên chức năng
Khoảng trắng giữa dấu ngoặc đơn và mũi tên trong đoạn mã sau 👉
599 không nhất thiết phải ở đó, đây là cùng một đoạn mã với các khoảng trắng khác nhau và 👉
520 vẫn hoạt động, nhưng nó dễ đọc hơn với khoảng trắng
Nếu bạn làm mới trang và chạy nó trong bảng điều khiển, bạn sẽ thấy nó vẫn hoạt động
Trả về tiềm ẩn và rõ ràng
Điều tiếp theo chúng ta sẽ làm là cái được gọi là trả lại ngầm định
Trả về rõ ràng là khi bạn nhập từ khóa
521 trước khi trả về một giá trị chẳng hạn như 👇
594
Đó là một trả về rõ ràng có nghĩa là chúng tôi trả lại giá trị ở đó một cách rõ ràng
Trả về ngầm định là trả lại nó mà không thực sự phải gõ từ khóa
521. Hàm mũi tên cho phép chúng tôi sử dụng trả về ẩn
Hãy bắt đầu bằng cách đặt hàm trên một dòng, như vậy 👇
593
Để thoát khỏi sự trở lại rõ ràng
- đầu tiên đặt chức năng trên một dòng
- sau đó xóa dấu ngoặc nhọn ________ 323 ________ 324
- cuối cùng, xóa từ khóa
5
21
596
Mã của bạn sẽ giống như trên 👆
Những gì chúng tôi đã làm ở đó là
- chúng tôi đã tạo một hàm mũi tên
5
26 nhận một tham số,5
27 - đã sửa đổi hàm để hoàn toàn trả về giá trị
Cách chúng ta có thể nói đây là một sự trở lại ngầm định là
- đó là tất cả trên một dòng
- không có từ khóa trả lại
- không có dấu ngoặc nhọn
Nếu bạn làm mới trình duyệt, bạn sẽ thấy nó vẫn hoạt động
Tóm lại. những gì chúng tôi đã làm ở đó là chúng tôi đã xóa khối chức năng, sửa đổi mã thành một dòng và xóa trả về rõ ràng
Cuối cùng, và đây là một sự lựa chọn phong cách hơn, nếu chỉ có một tham số cho hàm của bạn, bạn thực sự có thể loại bỏ dấu ngoặc đơn xung quanh tham số, như vậy👇
597
Nếu chỉ có một tham số trong hàm mũi tên của bạn, bạn có thể xóa chúng mà không gặp vấn đề gì. Nó vẫn là một chức năng mũi tên hợp lệ
Hãy làm một ví dụ khác
Tạo một hàm có tên là
528, nhận hai tham số
529 và
540, với giá trị mặc định của
540 là 3. Sau đó, chúng tôi sẽ tạo một biến tạm thời có tên là tổng mà chúng tôi trả về
598
Tạm dừng tại đây, hãy thử tự chuyển đổi nó thành chức năng mũi tên và sau đó quay lại sau khi bạn đã thử
Trước tiên hãy xem nó có hoạt động như ban đầu không
Lưu mã ở trên 👆 và làm mới
572 trong trình duyệt
Mở bàn điều khiển và kiểm tra chức năng
Bạn có thể nhận thấy rằng các công cụ dành cho nhà phát triển đang cung cấp cho chúng tôi chú thích
543 trong
544 như được hiển thị ở trên
Dấu chấm hỏi nhỏ phía trước
540 cho chúng ta biết rằng đối số là tùy chọn.
540 là tùy chọn vì có một giá trị mặc định để quay trở lại
Dán hàm vào một biến
528 và xóa tên hàm, như vậy 👇
599
Tiếp theo, chuyển đổi nó thành chức năng mũi tên. Loại bỏ chức năng từ khóa và thêm một mũi tên béo vào bên phải dấu ngoặc đơn, như hình dưới đây
510
Sửa đổi mã để trả về
548 và loại bỏ biến tổng. 👇
511
Đặt chức năng trên một dòng
512
Loại bỏ khối chức năng và từ khóa
521 như vậy 👇
513
Bây giờ chúng ta có một chức năng mũi tên ngắn
Bạn có thể nhận thấy rằng chúng tôi đã không loại bỏ dấu ngoặc đơn và đó là do có nhiều hơn một tham số
Chức năng mũi tên Gotcha
Có một số vấn đề khác với chức năng mũi tên mà chúng ta cần biết về
Bây giờ chúng ta hãy đi qua chúng
Trả lại một đối tượng
Hãy tạo một hàm
590, hàm này sẽ chấp nhận họ và tên của em bé
Bên trong hàm, tạo một đối tượng
591 với thuộc tính
592 và
593. 👇
514
Nó hoạt động
Làm thế nào bạn có thể chuyển đổi điều này thành một chức năng mũi tên?
Dán nó vào một biến và chuyển đổi nó thành một hàm mũi tên như vậy 👇
515
Nếu chức năng của bạn cần thực hiện một số nội dung bên trong khối, bạn có thể để nguyên như vậy. Đây là một chức năng mũi tên hoàn toàn hợp lệ
Nếu điều duy nhất bạn đang sử dụng mũi tên là khả năng nhập ít hơn cũng như một số lợi ích của việc không xác định phạm vi này, thì điều này hoàn toàn hợp lệ
Tuy nhiên, chúng ta có thể đi xa hơn một chút
Thay vì khai báo biến
591, chúng ta sẽ chỉ trả về đối tượng trực tiếp. 👇
516
Bây giờ câu hỏi là. làm thế nào chúng ta sẽ thực hiện trả lại ngầm định?
Chúng ta có thể đặt nó trên một dòng, không vấn đề gì [các đối tượng có thể được đặt trên một dòng]
Nhưng làm thế nào chúng ta sẽ trả lại nó?
Hãy thử nó theo cách chúng ta biết
Đặt nó trên một dòng
517
Để biến nó thành trả về ngầm định, hãy loại bỏ dấu ngoặc nhọn và từ khóa
521. 👇
518
Tuy nhiên, bạn sẽ thấy lỗi 👆 ở trên nếu bạn cố chạy mã như vậy
Điều gì đang xảy ra ở đó, nó nghĩ rằng dấu ngoặc nhọn từ đối tượng bé thực sự là dấu ngoặc nhọn từ khối hàm
Dấu ngoặc nhọn trong JavaScript có thể là việc tạo một đối tượng hoặc một khối mã
Các tùy chọn của bạn để hoàn toàn trả lại một đối tượng là gì?
Nếu bạn muốn hoàn toàn trả về một đối tượng trong JavaScript, bạn chỉ cần đặt một tập hợp các dấu ngoặc đơn xung quanh đối tượng mà bạn đang trả về và sau đó mã sẽ biết rằng đó không phải là khối đối với hàm
Hãy thử nó bằng cách sửa đổi mã của bạn như vậy 👇
519
Nếu bạn thử nó trong mã, nó vẫn hoạt động
Hiện nay. có lợi ích gì khi có chức năng theo cách này hay cách chúng tôi đã thực hiện nó ban đầu?
Bạn không thực sự nhận được nhiều lợi ích, trên thực tế, cách chúng tôi có nó ban đầu dễ đọc hơn một chút
Không có gì sai khi thực hiện một chức năng thông thường, bởi vì bạn muốn nghĩ về tương lai của mình
Giả sử bạn quay lại mã sau 6 tháng, điều gì sẽ dễ đọc hơn đối với bạn?
Không phải lúc nào bạn cũng tạo hàm mũi tên theo mặc định và hy vọng trong suốt khóa học này, bạn sẽ hiểu rõ hơn khi nào nên sử dụng hàm mũi tên [đặc biệt với mảng và tạo bản đồ, rút gọn và lọc]
IIFE
Cách tiếp theo để tạo một chức năng là sử dụng IIFE [phát âm là iffy]
Đó là một biểu thức hàm được gọi ngay lập tức
Chúng tôi sẽ làm một ví dụ để chứng minh IIFE là gì
Nhận xét tất cả mã JavaScript khác, thêm mã bên dưới rồi làm mới
572. 👇
530
Không có gì xảy ra khi bạn làm mới
572 vì nó không được phép chạy. Chúng tôi đã nói về cách bạn có thể gắn một hàm vào một biến và điều đó không sao cả
Một cách khác để chạy hàm này được gọi là biểu thức hàm được gọi ngay lập tức
Điều bạn có thể làm là đặt hàm đó trong dấu ngoặc đơn, [dấu ngoặc đơn luôn chạy trước trong JavaScript] và điều sẽ làm là trả về một giá trị hàm và bạn có thể chạy hàm đó ngay lập tức bằng cách đặt dấu ngoặc đơn ở cuối như vậy 👇
531
Bây giờ, nếu bạn làm mới trang, bạn sẽ thấy nhật ký trong bảng điều khiển, điều đó có nghĩa là biểu thức hàm của chúng tôi đã được gọi ngay lập tức. Nó đã được chạy ngay lập tức
Lợi ích của việc làm một cái gì đó như thế là gì?
Nó đã từng rất phổ biến trước khi chúng ta có các mô-đun và phạm vi khối
Khi chúng ta bắt đầu tìm hiểu phạm vi, bạn sẽ biết rằng một hàm khai báo phạm vi riêng của nó và việc khai báo các hàm của chúng thường rất tiện lợi và nó sẽ cung cấp cho chúng ta một không gian được che chở nơi các biến không thể lọt vào bên trong. Chúng ta sẽ xem xét điều đó sau trong khóa học
Hiện tại, chỉ cần biết rằng đó là một chức năng được gọi ngay lập tức
Một điều cuối cùng là nếu chức năng mất một tuổi thì sao?
532
Đó không phải là thứ bạn sẽ sử dụng thường xuyên, nhưng nó sẽ xuất hiện khi bạn cần tạo thứ gì đó như phần đóng [điều này sẽ được giải thích trong video sau]
phương pháp
Loại hàm tiếp theo mà chúng ta sẽ tìm hiểu được gọi là các phương thức
Một phương thức chỉ đơn giản là một chức năng sống bên trong một đối tượng
[Cho đến nay, Wes đã nói rằng các phương thức và chức năng là giống nhau và chúng tôi sắp ra mắt một video tập trung hoàn toàn vào việc tạo các phương thức của riêng bạn để làm cho điều đó rõ ràng hơn]
Cho đến giờ Wes đã nói với chúng ta rằng
598 là một hàm
Nếu chúng ta xem chức năng
599 trong trình duyệt, chúng ta sẽ thấy rằng anh ta đã nói dối chúng ta
5900 thực sự là chức năng sống bên trong
5901 và
5901 thực sự là một đối tượng
Nếu bạn gõ
5901 vào bảng điều khiển và mở rộng nó, bạn sẽ thấy rằng có đủ thứ trong đó. 👇
Cuộn xuống để ghi nhật ký và chữ ƒ nhỏ mà bạn nhìn thấy có nghĩa đó thực sự là một chức năng 👉
Vì vậy,
5901 là đối tượng và
5900,
5906 hoặc bất kỳ hàm nào khác được liệt kê bên dưới đối tượng bảng điều khiển là các hàm
Chúng ta có một từ đặc biệt để mô tả các chức năng sống bên trong một đối tượng và chúng ta gọi các phương thức đó là
Vì vậy, bạn thực sự có thể làm một cái gì đó như thế này. 👇
533
Hãy thử nó trong trình duyệt
Đầu tiên, gõ
5907 và nhấn enter. Tiếp theo, gõ
5908 và nhấn Enter
Bạn nên xem những điều sau đây 👇
5908 là một phương pháp. Bạn biến nó thành một thuộc tính trên đối tượng của mình và bạn đặt nó thành một hàm
Các chức năng đó cũng có thể có tên, chẳng hạn như đôi khi bạn sẽ thấy nội dung như thế này 👇
534
Wes không thấy lý do để làm điều đó, nhưng nó được cho phép về mặt kỹ thuật
Ngoài ra còn có một phương pháp tốc ký mới. 👇
535
Nếu bạn làm mới trình duyệt và gõ
5910, nó sẽ hoạt động
Những gì chúng tôi đã làm ở đây là thay vì viết
5911 [hoạt động được], chúng tôi có thể loại bỏ từ khóa ________ 1912 và ________ 1913. Điều đó biến nó thành một thuộc tính,
5914, được đặt thành hàm
5915
Nó chỉ là một cách viết tắt để viết các phương thức bên trong một đối tượng
Có một cách khác, đó là hàm mũi tên. 👇
536
5916 là một hàm mũi tên không nhận bất kỳ đối số nào, nhưng nó có thể nhận các đối số nếu bạn muốn
Đó là 3 cách khác nhau để thực hiện các phương thức và tốc ký là cách phổ biến nhất
Bản xem trước này
Lý do duy nhất khiến bạn thực hiện chức năng mũi tên là vì bạn không muốn truy cập
591
Chúng tôi sẽ xem xét chi tiết điều đó khi chúng tôi đến các đối tượng nhưng rất nhanh Wes sẽ cho chúng tôi thấy
Sửa đổi phương thức
5918 để thêm
5919 và chạy nó trong trình duyệt 👇
537
Bạn sẽ thấy rằng trên dòng trong mã của chúng tôi mà chúng tôi đã đăng nhập, chẳng hạn như
5920, giá trị của
591 đã được trả về
[[
591]] bằng với đối tượng mà nó được gọi là chống lại
Điều đó thật tuyệt vì bạn thực sự có thể làm điều gì đó như thế này 👇
538
Bạn sẽ thấy nó ngay lập tức lấp đầy giá trị của thuộc tính name. 👇
Điều đó sẽ không hoạt động trong hàm mũi tên vì chúng có phạm vi chính là
591. Chúng tôi sẽ giải thích rằng trong tương lai
Chức năng gọi lại
Điều cuối cùng mà Wes muốn nói với chúng ta là một thứ gọi là chức năng gọi lại
Vì vậy, chức năng gọi lại chỉ là một chức năng thông thường, nhưng chúng tôi sử dụng tên đó cho điều gì đó sẽ xảy ra sau khi hoàn thành việc gì đó
Cách dễ nhất để xác định hàm gọi lại là khi ai đó nhấp vào thứ gì đó, hãy chạy cái này. Hoặc khi khoảng thời gian này đã trôi qua, hãy chạy cái này
Hãy xem xét cả hai ví dụ đó
Nhấp vào Gọi lại
Chúng tôi sẽ thực hiện gọi lại nhấp chuột
Đi vào
572 và thêm một nút có lớp
5925 và nội dung "Nhấp vào tôi. " 👇
539
Quay lại tệp JavaScript, hãy chọn phần tử như vậy 👇 [chúng ta sẽ đề cập sâu hơn về DOM sau]
540
Làm mới trang và mở bảng điều khiển để thấy nó hoạt động
Tiếp theo, lắng nghe để nhấp vào nút đó như hình bên dưới
541
Khi lần nhấp đó xảy ra, chúng tôi có thể chuyển nó đến bất kỳ chức năng nào mà chúng tôi muốn. trong trường hợp này, chúng tôi đã chọn
5918 từ đối tượng
5907 của chúng tôi từ ví dụ trước
Bây giờ, mỗi khi bạn nhấp vào nó, nó sẽ báo "HEY WESSSS" 👇
Điều đang xảy ra là ________ 1928 là một trình xử lý sự kiện mà chúng tôi đang lắng nghe để nhấp vào và chức năng gọi lại là ________ 1908
Đó là một chức năng mà chúng tôi cấp cho nó quyền truy cập
Lưu ý là chúng ta không chạy nó ở đó, chúng ta chỉ nói ở đây là chức năng, khi ai đó bấm vào nút, hãy gọi nó
Đó là những gì được gọi là chức năng gọi lại
Các hàm gọi lại có thể được khai báo bên ngoài trình xử lý, như vậy 👇
542
Điều đó cho trình duyệt biết rằng khi nhấn phần tử có lớp
5930, hãy chạy hàm
5931. Tùy chọn khác, phổ biến bằng một nửa, là xác định hàm bên ngoài và sau đó chuyển tham chiếu đến hàm
Một điều khác bạn có thể làm là chuyển cho nó một chức năng ẩn danh, như được hiển thị bên dưới
543
Và nó hoạt động tốt khi bạn nhấn nó
Những gì chúng tôi đã làm ở đó là chúng tôi đã trực tiếp chuyển cho nó một hàm ẩn danh dưới dạng một giá trị và trình duyệt sẽ tự gọi hàm này. [Có những mặt tích cực và tiêu cực của việc làm theo cách đó mà chúng ta sẽ nói vào lúc khác. ]
Điều bạn cần biết là chức năng gọi lại là một chức năng được chuyển vào một chức năng khác và sau đó nó được trình duyệt gọi vào thời điểm sau đó
Hẹn giờ gọi lại
Một ví dụ khác mà chúng tôi có là một cuộc gọi lại hẹn giờ
Có một số cách để thực hiện đồng hồ bấm giờ [chúng ta sẽ xem xét tất cả chúng trong tương lai] nhưng cách đơn giản nhất là
5932