Giải thích từ khóa này trong javascript
cái này trong JavaScript Show Cải thiện bài viết Lưu bài viết Thích bài viết
Cải thiện bài viết Lưu bài viết từ khóa này trong javascript luôn giữ tham chiếu đến một đối tượng duy nhất, xác định ngữ cảnh thực thi của dòng mã hiện tại. Các hàm, trong JavaScript, về cơ bản là các đối tượng. Giống như các đối tượng, chúng có thể được gán cho các biến, được truyền cho các hàm khác và được trả về từ các hàm. Và giống như các đối tượng, chúng có các thuộc tính riêng. Một trong những thuộc tính này là Giá trị mà cửa hàng này là bối cảnh thực thi hiện tại của chương trình JavaScript. Do đó, khi được sử dụng bên trong một hàm, giá trị này sẽ thay đổi tùy thuộc vào cách hàm đó được xác định, cách nó được gọi và bối cảnh thực thi mặc định. từ khóa này sẽ đề cập đến các đối tượng khác nhau tùy thuộc vào cách nó được sử dụng. Hàm, trong JavaScript, có thể được gọi theo nhiều cách cái này với lời gọi hàmGọi hàm đề cập đến quá trình gọi một hàm sử dụng tên của nó hoặc một biểu thức đánh giá đối tượng hàm, theo sau là một tập hợp các dấu ngoặc mở và đóng đầu tiên (việc bao gồm các dấu ngoặc cho biết rằng chúng tôi đang yêu cầu công cụ JavaScript thực thi hàm ngay lập tức JavaScriptundefined undefined0 undefined undefined1 undefined undefined2 undefined undefined3 undefined undefined4_______0_______5 undefined undefined1 undefined undefined7
undefined undefined8 undefined undefined9 John is 31 years old0 John is 31 years old1 John is 31 years old2 cái này bên trong hàm doS Something, nếu nó được gọi thông qua lời gọi hàm như trên, có giá trị của đối tượng toàn cục, là đối tượng cửa sổ trong môi trường trình duyệt JavaScriptundefined undefined0 undefined undefined1 undefined undefined2 John is 31 years old9
[object Object] 1 [object Object] 20_______17_______1 undefined undefined4_______17_______3 [object Object] 1 [object Object] 24 [object Object] 1 [object Object] 25 [object Object] 1 [object Object] 26 undefined undefined1 undefined undefined7
undefined undefined8 undefined undefined9 [object Object] [object Window] NaN [object Object] [object Window] NaN1 John is 31 years old0 John is 31 years old1 [object Object] [object Window] NaN [object Object] [object Window] NaN4 đầu ra. test value Tuy nhiên, đây không phải là luôn luôn như vậy. Nếu hàm doS Something () đang chạy ở chế độ nghiêm ngặt, nó sẽ ghi nhật ký không xác định thay vì đối tượng cửa sổ chung. Điều này là do, ở chế độ nghiêm ngặt (được biểu thị bằng dòng. 'sử dụng nghiêm ngặt';), giá trị mặc định của điều này, đối với bất kỳ đối tượng chức năng nào, được đặt thành không xác định thay vì đối tượng toàn cầu. Ví dụ. JavaScriptundefined undefined0 undefined undefined1 undefined undefined2 undefined undefined3 undefined undefined4_______38_______3 undefined undefined4_______38_______5 [object Object] 1 [object Object] 26
[object Object] 1 [object Object] 20 [object Object] [object Object] 1 [object Object] [object Object] 28 undefined undefined4_______45_______0 [object Object] 1 [object Object] 23 John is 21 years old2_______45_______3 John is 21 years old4 John is 21 years old5 undefined undefined2 John is 21 years old7 John is 21 years old8 John is 21 years old9 John is 21 years old8 1
[object Object] 1 [object Object] 23 John is 21 years old4 John is 21 years old5 undefined undefined7 undefined undefined4_______294_______9 undefined undefined1 undefined undefined7
undefined undefined8 undefined undefined9 John is 31 years old0 John is 31 years old1
đầu ra. undefined undefined cái này với lời gọi phương thứcHàm, khi được định nghĩa là trường hoặc thuộc tính của đối tượng, được gọi là phương thức. JavaScriptundefined undefined0 undefined undefined1 2undefined undefined4_______296_______4 5 6undefined undefined4_______296_______8 undefined undefined4_______0_______00 undefined undefined2 undefined undefined02 John is 21 years old5 John is 21 years old0 [object Object] 1 [object Object] 23 undefined undefined06 undefined undefined07 John is 21 years old2 [object Object] 1 [object Object] 23 undefined undefined10 undefined undefined11 undefined undefined12 undefined undefined4_______0_______7 undefined undefined1 undefined undefined7 [object Object] 1 [object Object] 20_______0_______18 [object Object] 1 [object Object] 20_______0_______20 undefined undefined21 John is 31 years old0 John is 31 years old1 undefined undefined24 đầu ra. John is 31 years old Trong ví dụ mã trên, logInfo() là một phương thức của đối tượng người và chúng tôi đã gọi nó bằng cách sử dụng mẫu gọi đối tượng. Đó là, chúng tôi đã sử dụng các trình truy cập thuộc tính để truy cập phương thức là một phần của đối tượng Đến lượt nó, điều này sẽ giúp chúng ta hiểu bối cảnh này có thể là gì trong bất kỳ chức năng cụ thể nào bởi vì, trong mỗi lời gọi này, giá trị của điều này là khác nhau Ví dụ. JavaScriptundefined undefined0 undefined undefined1 undefined undefined27 undefined undefined4_______0_______29 undefined undefined4_______0_______31 undefined undefined2 undefined undefined02 undefined undefined1 John is 21 years old5 undefined undefined36 John is 21 years old5 John is 21 years old0 [object Object] 1 [object Object] 23 John is 21 years old2 undefined undefined41 John is 21 years old4
undefined undefined45
John is 21 years old5 undefined undefined49 [object Object] 1 [object Object] 23 undefined undefined51 undefined undefined4_______0_______7 undefined undefined1 undefined undefined55 undefined undefined1 undefined undefined1 undefined undefined58 undefined undefined1 undefined undefined60 John is 21 years old3 undefined undefined12 undefined undefined1 undefined undefined64 undefined undefined1 undefined undefined66 undefined undefined67 đầu ra. [object Object] 1 [object Object] 2 Trong ví dụ trên, calc() là một phương thức của đối tượng bổ sung và do đó được gọi bằng cách sử dụng các quy tắc gọi phương thức trong dòng 9 và 10. Tuy nhiên, bây giờ chúng ta hãy xem xét một điểm nhầm lẫn lớn. Điều gì xảy ra với điều này trong một hàm được lồng bên trong một phương thức của một đối tượng? JavaScriptundefined undefined0 undefined undefined1 undefined undefined27 undefined undefined4_______0_______29 undefined undefined4_______0_______31 undefined undefined2 undefined undefined02 undefined undefined1 undefined undefined4_______0_______36 undefined undefined4_______45_______0 [object Object] 1 [object Object] 23 John is 21 years old2_______0_______41 John is 21 years old4 undefined undefined1 undefined undefined4_______0_______2 undefined undefined89 John is 21 years old5 [object Object] 1 [object Object] 23 undefined undefined92 undefined undefined1 undefined undefined4_______0_______95 undefined undefined4_______45_______0 [object Object] 1 [object Object] 23 John is 21 years old2_______0_______41 undefined undefined12 undefined undefined1 undefined undefined4_______0_______49 [object Object] 1 [object Object] 23 undefined undefined45 undefined undefined1 undefined undefined1 undefined undefined7_______0_______49 John is 31 years old11 John is 31 years old12 undefined undefined7 undefined undefined1 undefined undefined55 undefined undefined1 undefined undefined1 John is 31 years old18 undefined undefined1 undefined undefined60 John is 21 years old3 undefined undefined12 undefined undefined1 undefined undefined1 John is 31 years old18 undefined undefined1 undefined undefined66 undefined undefined67 đầu ra. [object Object] [object Window] NaN [object Object] [object Window] NaN Hãy cố gắng hiểu những gì vừa xảy ra. Khi chúng ta gọi calc() ở dòng 14 và 15, chúng ta đang sử dụng lời gọi phương thức để thiết lập điều này để thêm vào calc(). Điều này có thể được xác minh bằng cách sử dụng câu lệnh nhật ký trong dòng 4 Làm thế nào để chúng tôi giải quyết vấn đề này? Một giải pháp là gán giá trị này từ hàm bên ngoài cho một biến được sử dụng trong hàm lồng nhau như vậy. JavaScriptundefined undefined0 undefined undefined1 undefined undefined27 undefined undefined4_______0_______29 undefined undefined4_______0_______31 undefined undefined2 undefined undefined02
John is 21 years old5 undefined undefined36 John is 21 years old5 John is 21 years old0 [object Object] 1 [object Object] 23 John is 21 years old2 undefined undefined41 John is 21 years old4
John is 31 years old46_______10_______47 John is 31 years old46_______10_______49 John is 31 years old46_______10_______51 [object Object] 1 [object Object] 23 [object Object] 1 [object Object] 26
John is 21 years old5 undefined undefined2 John is 31 years old56 John is 21 years old5 John is 31 years old58
John is 31 years old59 John is 31 years old60 John is 31 years old59 John is 31 years old62
John is 31 years old65 undefined undefined36
undefined undefined41 undefined undefined12
John is 31 years old73 John is 21 years old5 undefined undefined7 John is 21 years old5 undefined undefined49 John is 31 years old11 undefined undefined4_______0_______7 undefined undefined1 undefined undefined55 undefined undefined1 undefined undefined58 undefined undefined1 undefined undefined60 John is 21 years old3 undefined undefined12
undefined undefined1 undefined undefined64 undefined undefined1 undefined undefined66 John is 31 years old93 đầu ra. [object Object] [object Object] 1 [object Object] [object Object] 2 Các giải pháp khác cho vấn đề này liên quan đến việc sử dụng bind(), call() hoặc apply() mà chúng tôi sẽ sớm xem xét điều này với lời gọi hàm tạoLời gọi hàm tạo được thực hiện khi một từ khóa mới được theo sau bởi một tên hàm và một tập hợp các dấu ngoặc đơn mở và đóng (có hoặc không có đối số) Ví dụ. let person1= new People(‘John’, 21); Ở đây, person1 là đối tượng mới được tạo và People là hàm tạo được sử dụng để tạo đối tượng này. Lời gọi hàm tạo là một trong một số cách tạo đối tượng trong JavaScript. Chính xác thì điều gì sẽ xảy ra khi chúng ta sử dụng từ khóa mới kết hợp với tên hàm? . Hãy để chúng tôi nghiên cứu chúng với ví dụ sau. JavaScriptundefined undefined0 undefined undefined1 John is 31 years old96 undefined undefined2 John is 31 years old98 John is 31 years old59 [object Object] 1 [object Object] 23 [object Object] 1 [object Object] 201 John is 31 years old59 [object Object] 1 [object Object] 23 [object Object] 1 [object Object] 204 undefined undefined1 undefined undefined4_______17_______3 [object Object] 1 [object Object] 208 undefined undefined2 undefined undefined02 John is 31 years old46_______45_______0 [object Object] 1 [object Object] 23 undefined undefined06 undefined undefined07 John is 21 years old2 [object Object] 1 [object Object] 23 undefined undefined10 [object Object] 1 [object Object] 219 undefined undefined12 Từ khóa này được gọi là gì?Từ khóa this tham chiếu đến đối tượng hiện tại trong một phương thức hoặc hàm tạo . Cách sử dụng phổ biến nhất của từ khóa this là để loại bỏ sự nhầm lẫn giữa các thuộc tính lớp và các tham số có cùng tên (vì một thuộc tính lớp bị che khuất bởi một phương thức hoặc tham số hàm tạo).
Từ khóa này có quan trọng trong JavaScript không?Nhưng điều cực kỳ quan trọng để viết mã JavaScript nâng cao hơn . Trong JavaScript, từ khóa này cho phép chúng tôi. Sử dụng lại các chức năng trong các ngữ cảnh thực thi khác nhau. Điều đó có nghĩa là, một hàm sau khi được xác định có thể được gọi cho các đối tượng khác nhau bằng cách sử dụng từ khóa this.
Bốn nguyên tắc của từ khóa này trong JavaScript là gì?Từ khóa this, khi được sử dụng trong một hàm, sẽ liên kết hàm đó với một đối tượng ngữ cảnh. Có bốn loại ràng buộc. liên kết mặc định, liên kết ngầm, liên kết rõ ràng và liên kết lệnh gọi hàm tạo (mới) Biết bốn quy tắc này sẽ giúp bạn dễ dàng phân biệt ngữ cảnh của tham chiếu này.
Đây có phải là từ khóa hoặc biến trong JavaScript không?từ khóa này xác định một đối tượng, đối tượng đó đang thực thi đoạn mã JavaScript hiện tại. Trong JavaScript, biến “this” là một biến mà mọi ngữ cảnh thực thi đều nhận được trong một lệnh gọi hàm thông thường. Mỗi hàm JavaScript có một tham chiếu đến bối cảnh thực thi hiện tại của nó trong khi thực thi, được gọi là. |