Mã bên trong JavaScript function
sẽ thực thi khi "một cái gì đó" gọi nó.
Gọi một hàm javascript
Mã bên trong một hàm không được thực thi khi hàm được xác định.defined.
Mã bên trong một hàm được thực thi khi hàm được gọi.invoked.
Người ta thường sử dụng thuật ngữ "gọi một hàm" thay vì "gọi hàm".call a function" instead of "invoke a function".
Người ta cũng thường nói "kêu gọi một hàm", "bắt đầu hàm" hoặc "thực hiện một hàm".
Trong hướng dẫn này, chúng tôi sẽ sử dụng gọi, bởi vì một hàm JavaScript có thể được gọi mà không được gọi.invoke, because a JavaScript function can be invoked without being called.
Gọi một chức năng như một hàm
Thí dụ
hàm myfunction [a, b] {& nbsp; trả lại a * b; } myFunction [10, 2]; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // sẽ trở lại 20
return a * b;
}
myFunction[10, 2]; // Will return 20
Hãy tự mình thử »
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.
Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy hàm trên "thuộc về" trên trang HTML.
Trong trình duyệt, đối tượng trang là cửa sổ trình duyệt. Hàm trên tự động trở thành một hàm cửa sổ.
Ghi chú
Đây là một cách phổ biến để gọi một chức năng JavaScript, nhưng không phải là một thực hành rất tốt. Các biến, phương thức hoặc chức năng toàn cầu có thể dễ dàng tạo ra xung đột tên và lỗi trong đối tượng toàn cầu.
Global variables, methods, or functions can easily create name conflicts and bugs in the global object.
myfunction [] và window.myfunction [] là cùng một hàm:
Thí dụ
hàm myfunction [a, b] {& nbsp; trả lại a * b; } myFunction [10, 2]; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // sẽ trở lại 20
return a * b;
}
window.myFunction[10, 2]; // Will also return 20
Hãy tự mình thử »
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.this?
Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy hàm trên "thuộc về" trên trang HTML.object.
Trong trình duyệt, đối tượng trang là cửa sổ trình duyệt. Hàm trên tự động trở thành một hàm cửa sổ. object depends on how this
is being invoked [used or called].
Ghi chú
Đây là một cách phổ biến để gọi một chức năng JavaScript, nhưng không phải là một thực hành rất tốt. Các biến, phương thức hoặc chức năng toàn cầu có thể dễ dàng tạo ra xung đột tên và lỗi trong đối tượng toàn cầu.object. |
myfunction [] và window.myfunction [] là cùng một hàm:global object. |
hàm myfunction [a, b] {& nbsp; trả lại a * b; } window.myfunction [10, 2]; & nbsp; & nbsp; & nbsp; // cũng sẽ trở lại 20global object. |
Cái này là cái gì? |
Trong JavaScript, từ khóa this đề cập đến một đối tượng.element that received the event.
|
Đối tượng nào phụ thuộc vào cách this được gọi [được sử dụng hoặc gọi].any object.
|
Từ khóa this
đề cập đến các đối tượng khác nhau tùy thuộc vào cách sử dụng:
Trong một phương thức đối tượng, this
đề cập đến đối tượng.
Một mình, this
đề cập đến đối tượng toàn cầu.
Trong một chức năng, this
đề cập đến đối tượng toàn cầu.
Thí dụ
hàm myfunction [a, b] {& nbsp; trả lại a * b; } myFunction [10, 2]; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // sẽ trở lại 20
Hãy tự mình thử »
return this;
}
Hãy tự mình thử »
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.this to be the global object.
Using the window object as a variable can easily crash your program.
Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy hàm trên "thuộc về" trên trang HTML.
Trong trình duyệt, đối tượng trang là cửa sổ trình duyệt. Hàm trên tự động trở thành một hàm cửa sổ.
Ghi chúmyObject], with two properties [firstName and lastName], and a method [fullName]:
Thí dụ
hàm myfunction [a, b] {& nbsp; trả lại a * b; } myFunction [10, 2]; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // sẽ trở lại 20
firstName:"John",
lastName: "Doe",
fullName: function [] {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName[]; // Will return "John Doe"
Hãy tự mình thử »
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.fullName method is a function. The function belongs to the object. myObject is the owner of the function.
Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy hàm trên "thuộc về" trên trang HTML.myObject.
Trong trình duyệt, đối tượng trang là cửa sổ trình duyệt. Hàm trên tự động trở thành một hàm cửa sổ.fullName method to return the value of
this
:
Thí dụ
hàm myfunction [a, b] {& nbsp; trả lại a * b; } myFunction [10, 2]; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // sẽ trở lại 20
firstName:"John",
lastName: "Doe",
fullName: function [] {
return this;
}
}
Hãy tự mình thử »
myObject.fullName[];
Hãy tự mình thử »
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.
Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy hàm trên "thuộc về" trên trang HTML.
Trong trình duyệt, đối tượng trang là cửa sổ trình duyệt. Hàm trên tự động trở thành một hàm cửa sổ.
Ghi chú
Thí dụ
hàm myfunction [a, b] {& nbsp; trả lại a * b; } myFunction [10, 2]; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // sẽ trở lại 20
function myFunction[arg1, arg2] {
this.firstName = arg1;
this.lastName
= arg2;
}
Hãy tự mình thử »
const myObj = new myFunction["John", "Doe"];
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.
myObj.firstName;
Hãy tự mình thử »
Hàm trên không thuộc về bất kỳ đối tượng. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định.
Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy hàm trên "thuộc về" trên trang HTML.
The
value of this
will be the new object created when the function is invoked.