Chúng ta có thể gọi phương thức không tĩnh từ phương thức tĩnh trong javascript không?
Trong blog này, chúng tôi thảo luận về từ khóa tĩnh, phương thức tĩnh và cách gọi phương thức không tĩnh từ phương thức tĩnh Show
Tĩnh là một từ khóa. Như ngụ ý của từ này, nó giữ một giá trị tĩnh và giữ nó cho đến khi kết thúc chương trình. Từ khóa tĩnh được sử dụng sau mã định danh truy cập và trước kiểu dữ liệu Ví dụ
Chúng tôi có thể sử dụng giá trị 'i' trong suốt chương trình. Tĩnh giống như hằng số nhưng đối với bộ nhớ tĩnh được cấp phát và các giá trị được chỉ định trong thời gian chạy Chúng ta có thể tạo một phương thức tĩnh bên trong lớp không tĩnh
Trong đoạn mã trên, chúng tôi đã tạo phương thức tĩnh Hàm () bên trong lớp "Chương trình" không tĩnh. Nhưng khi chúng ta thử gọi hàm Không tĩnh i. e, Phương thức kiểm tra () bên trong chức năng tĩnh, nó báo lỗi - “Cần có tham chiếu đối tượng cho chương trình, thành viên hoặc thuộc tính không tĩnh. Phương pháp kiểm tra()" Vì vậy, chúng ta cần tạo một thể hiện của lớp để gọi phương thức không tĩnh Phương thức staticFunction() là một phương thức tĩnh, chúng ta có thể gọi trực tiếp phương thức này
Tóm lượcTrong blog này, chúng ta đã thảo luận về cách triển khai và gọi các phương thức tĩnh và không tĩnh từ lớp bằng các mẫu mã. Tôi hy vọng nó hữu ích cho người mới bắt đầu JavaScript cung cấp các phương thức tĩnh thuộc về lớp thay vì một thể hiện của lớp đó. Vì vậy, một thể hiện không bắt buộc phải gọi phương thức tĩnh. Các phương thức này được gọi trực tiếp trên chính lớp đó Những điểm cần nhớ
Phương pháp tĩnh JavaScript Ví dụ 1Hãy xem một ví dụ đơn giản về phương thức tĩnh Kiểm tra nó ngay bây giờđầu ra ví dụ 2Hãy xem một ví dụ để gọi nhiều hơn một phương thức tĩnh Kiểm tra nó ngay bây giờđầu ra static method is invoked static method is invoked again ví dụ 3Hãy xem một ví dụ để gọi nhiều hơn một phương thức tĩnh có tên tương tự Kiểm tra nó ngay bây giờđầu ra static method is invoked again Ví dụ 4Hãy xem một ví dụ để gọi một phương thức tĩnh trong hàm tạo Kiểm tra nó ngay bây giờđầu ra static method is invoked static method is invoked Ví dụ 5Hãy xem một ví dụ để gọi một phương thức tĩnh trong phương thức không tĩnh Kiểm tra nó ngay bây giờđầu ra Phương thức tĩnh trong JavaScript là phương thức có từ khóa tĩnh được thêm vào trước chính nó. Các phương thức như vậy không thể được truy cập thông qua các đối tượng được khởi tạo nhưng có thể được truy cập thông qua tên lớp. Điều này là do các phương thức tĩnh thuộc về lớp trực tiếp. Kế thừa thậm chí áp dụng cho các phương pháp tĩnh. Ngoài ra, các phương thức này có thể được gọi bằng các phương thức không tĩnh và thậm chí cả các hàm tạo. Các phương thức tĩnh được sử dụng để tạo các hàm tiện ích và tạo các đối tượng chứa thông tin mặc định Phạm vi
Sự thôi thúc sử dụng phương thức tĩnh trong JavaScriptTrước khi bắt đầu sử dụng thực tế phương thức tĩnh, chúng ta cần biết động cơ khiến chúng ta sử dụng phương thức tĩnh. Hãy xem xét rằng chúng ta có một lớp tên là Square và một phương thức có tên là findPerimeter, được định nghĩa là
Phương thức tĩnh trong JavaScript là gì?Một phương thức tĩnh là một phương thức được định nghĩa trong một lớp bằng cách sử dụng từ khóa tĩnh. Phương thức như vậy hóa ra hơi khác so với phương thức JavaScript thông thường. Sự khác biệt của phương thức tĩnh là nó không thể được truy cập bởi bất kỳ đối tượng khởi tạo nào của lớp. Thay vào đó, phương thức tĩnh chỉ có thể được truy cập bằng tên lớp vì nó trực tiếp thuộc về lớp Trước khi biết cách gọi một phương thức tĩnh, điều cần thiết là phải biết cú pháp của nó Cú pháp cho phương thức tĩnh trong JavaScriptĐể định nghĩa một phương thức tĩnh trong JavaScript, chúng ta cần đặt tiền tố từ khóa tĩnh trước định nghĩa của phương thức Giả sử, chúng ta có một phương thức JavaScript sendMessage được định nghĩa bên trong một lớp Trò chuyện ________số 8Và bây giờ chúng tôi muốn chuyển đổi phương thức sendMessage ở trên thành một phương thức tĩnh. Sau đó, chúng tôi viết lại lớp như sau
Truy cập phương thức tĩnh trong JavaScriptĐầu tiên, chúng ta sẽ thấy cách truy cập phương thức tĩnh sai và sau đó là cách đúng. Biết sai trước sẽ biết cách tiếp cận không hiệu quả Cách sai để truy cập phương thức tĩnh trong JavaScriptGiả sử chúng ta tạo một đối tượng ngoài lớp Trò chuyện như Và bây giờ, chúng tôi muốn sử dụng đối tượng khởi tạo này để gọi phương thức tĩnh sendMessage. Sau đó, nếu chúng ta làm 0Chúng tôi sẽ gặp lỗi khi nói myChat. sendMessage không phải là một chức năng. Điều này cho thấy rằng không thể truy cập phương thức tĩnh thông qua các đối tượng Đúng cách để truy cập phương thức tĩnh trong JavaScriptMặt khác, nếu chúng ta truy cập trực tiếp phương thức tĩnh sendMessage bằng cách sử dụng tên lớp Chat, thì 1Cung cấp cho chúng tôi chuỗi trả về "You got me. ". Điều này cho thấy phương thức tĩnh có thể được truy cập bằng cách sử dụng trực tiếp tên lớp Mối quan hệ giữa phương thức tĩnh và lớpĐể hiểu mối quan hệ thực tế giữa phương thức tĩnh và lớp, chúng ta sẽ tiếp tục với ví dụ về lớp Square và phương thức tĩnh so sánhPerimeter, mà chúng ta đã thấy ở đầu bài viết này. Lần này chúng ta sẽ triển khai phương thức tĩnh bên trong lớp 2đầu ra 3Bây giờ, nếu chúng ta muốn so sánh chu vi của hai đối tượng loại Square, thì biểu thức Square. so sánh Perimeter(square 1, square 2) cho ta kết quả là "Hình vuông thứ hai có chu vi lớn hơn". Vì vậy, chúng tôi thấy rằng chúng tôi có thể truy cập thành công phương thức tĩnh thông qua tên lớp. Điều này là do phương thức tĩnh trực tiếp thuộc về lớp Mối quan hệ giữa phương thức tĩnh và đối tượngKhông có mối quan hệ trực tiếp nào tồn tại giữa phương thức tĩnh và đối tượng. Các đối tượng không được phép truy cập một phương thức tĩnh. Về mặt kỹ thuật, điều này xảy ra bởi vì bất cứ khi nào một phương thức tĩnh được định nghĩa trong một lớp, thì phương thức tĩnh đó về cơ bản được lưu trữ bên trong hàm tạo của lớp. Một phương thức tĩnh không được lưu trữ bên trong nguyên mẫu của lớp và do đó không thể truy cập được đối với các đối tượng. Trong JavaScript, các đối tượng chỉ có thể truy cập những thành viên của một lớp được lưu trữ bên trong nguyên mẫu của lớp. Hình ảnh dưới đây nói lên ý tưởng Phương thức tĩnh và cái nàyVề cơ bản, một phương thức tĩnh thuộc về một lớp. Do đó, khi chúng ta sử dụng từ khóa this bên trong phần thân của phương thức tĩnh, thì từ khóa this sẽ đề cập đến chính lớp đó. Ý tưởng trở nên rõ ràng trong ví dụ sau 4Trong ví dụ trên, chúng ta có một phương thức tĩnh checkThis được định nghĩa bên trong một lớp Chat Bây giờ, nếu chúng ta làm 5Ta nhận được câu trả lời là đúng. Điều này chứng tỏ rằng từ khóa này bên trong một phương thức tĩnh đề cập đến lớp đã định nghĩa nó Truy cập các thành viên tĩnh từ một phương thức tĩnh khácCó, thậm chí có thể truy cập các thành viên tĩnh từ một phương thức tĩnh khác. Việc truy cập như vậy đạt được bằng cách sử dụng từ khóa this. Giả sử, chúng ta có một lớp Người dùng và ba thành viên tĩnh được định nghĩa trong lớp 0 Truy cập các thành viên tĩnh từ một hàm tạo lớp và các phương thức không tĩnhĐầu tiên, chúng ta sẽ xem cách truy cập các thành viên tĩnh từ một hàm tạo của lớp, sau đó, thứ hai, chúng ta sẽ xem cách truy cập chúng từ các phương thức không tĩnh Truy cập các thành viên tĩnh từ một Trình xây dựng lớpChà, một hàm tạo của lớp có thể truy cập một thành viên tĩnh. Truy cập như vậy có thể đạt được thông qua tên lớp. Ví dụ dưới đây mô tả ý tưởng 2 Vì phương thức tĩnh thuộc về một lớp và không thể truy cập thông qua các đối tượng, điều này có nghĩa là bộ nhớ cho phương thức tĩnh chỉ được cấp phát một lần và không phụ thuộc vào số lượng đối tượng khởi tạo được tạo. Điều này cũng ngụ ý rằng phương thức tĩnh không được chia sẻ giữa các đối tượng được khởi tạo bởi vì một phương thức như vậy không thể được gọi thông qua bất kỳ đối tượng được khởi tạo nào Tại sao chúng ta cần phương thức tĩnh trong JavaScriptNhư đã thảo luận ở phần đầu của bài viết này, ý tưởng có một phương thức tĩnh trong JavaScript xuất hiện khi chúng ta muốn liên kết phương thức đó với một lớp hơn là với bất kỳ đối tượng được khởi tạo nào. Có thể có hai trường hợp sử dụng (nhưng không giới hạn) khi chúng tôi muốn có một phương thức tĩnh Để tạo các chức năng tiện íchHãy xem một ví dụ để hiểu cách một phương thức tĩnh có thể được sử dụng như một hàm tiện ích. Giả sử chúng ta có một lớp Người dùng được định nghĩa là 7 Sự khác biệt giữa Phương thức tĩnh và Phương thức không tĩnh trong JavaScriptPhương thức tĩnh Phương thức không tĩnh1. Trực thuộc lớp1. Thuộc lớp gián tiếp2. Không thể được gọi thông qua các đối tượng khởi tạo2. Có thể được gọi thông qua các đối tượng khởi tạo3. Từ khóa this, khi được sử dụng bên trong phương thức, đề cập đến lớp 3. Từ khóa this khi được sử dụng bên trong phương thức, đề cập đến đối tượng mà phương thức được gọi thông qua đó Những điểm cần nhớ về phương thức tĩnh trong JavaScript1. Một phương thức có thể được tạo thành tĩnh bằng cách chỉ cần thêm từ khóa tĩnh vào nó 2. Phương thức tĩnh là một phương thức của một lớp nhưng không phải của đối tượng được khởi tạo 3. Phương thức tĩnh không thể được truy cập bởi các đối tượng khởi tạo 4. Phương thức tĩnh có thể được truy cập bằng tên lớp 5. Về mặt kỹ thuật, phương thức tĩnh được lưu trữ bên trong hàm tạo của lớp chứ không phải nguyên mẫu của lớp 6. Các phương thức tĩnh hoàn toàn không được chia sẻ với các đối tượng được khởi tạo 7. Bất cứ khi nào một phương thức tĩnh được định nghĩa, bộ nhớ của nó chỉ được cấp phát một lần và bộ nhớ không phụ thuộc vào số lượng đối tượng được khởi tạo 8. Các phương thức tĩnh thường được sử dụng để tạo một đối tượng chứa thông tin mặc định hoặc để tạo các hàm tiện ích 9. Kế thừa cũng hoạt động cho các phương thức tĩnh Thuộc tính tĩnhTrong JavaScript, ngoài việc có các phương thức tĩnh trong một lớp, chúng ta cũng có thể có các thuộc tính tĩnh trong một lớp. Các thuộc tính tĩnh khác với các thuộc tính thông thường giống như cách các phương thức tĩnh khác với các phương thức thông thường mà chúng ta đã thấy trong các phần trước Cú pháp cho thuộc tính tĩnh trong JavaScriptGiả sử, chúng ta có một lớp Trò chuyện và một thông báo thuộc tính 1 Kế thừa các phương thức và thuộc tính tĩnhNgay cả các phương thức và thuộc tính tĩnh cũng có thể được kế thừa. Giả sử chúng ta có một lớp cha là Người dùng và một lớp con là Khách hàng 3 |