Hướng dẫn how do you call a function javascript? - làm thế nào để bạn gọi một hàm javascript?


Phương pháp tái sử dụng

Với phương thức call(), bạn có thể viết một phương thức có thể được sử dụng trên các đối tượng khác nhau.


Tất cả các chức năng là phương pháp

Trong JavaScript, tất cả các chức năng là các phương thức đối tượng.

Nếu một hàm không phải là phương thức của đối tượng JavaScript, thì đó là một hàm của đối tượng toàn cầu (xem chương trước).

Ví dụ dưới đây tạo ra một đối tượng với 3 thuộc tính, tên FirstName, lastName, fullName.

Thí dụ

const person = {& nbsp; & nbsp; firstName: "john", & nbsp; & nbsp; lastName: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}}
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}

// Điều này sẽ trả lại "John Doe": person.fullname ();
person.fullName();

Hãy tự mình thử »

Trong ví dụ trên, this đề cập đến đối tượng người.person object.

this.firstName có nghĩa là thuộc tính đầu tiên của điều này. means the firstName property of this.

Giống như:

this.firstName có nghĩa là thuộc tính đầu tiên của người. means the firstName property of person.


Cái này là cái gì?this?

Trong JavaScript, từ khóa this đề cập đến một đối tượng.object.

Đối tượng nào phụ thuộc vào cách this được gọi (được sử dụng hoặc gọi). object depends on how this is being invoked (used or called).

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.object.
Một mình, this đề cập đến đối tượng toàn cầu.global object.
Trong một chức năng, this đề cập đến đối tượng toàn cầu.global object.
Trong một hàm, ở chế độ nghiêm ngặt, thisundefined.
Trong một sự kiện, this đề cập đến yếu tố đã nhận được sự kiện.element that received the event.
Các phương thức như call(), this2 và this3 có thể giới thiệu this cho bất kỳ đối tượng nào.any object.


Phương thức call () call call ()

Phương pháp call() là phương pháp JavaScript được xác định trước.

Nó có thể được sử dụng để gọi (gọi) một phương thức với một đối tượng chủ sở hữu làm đối số (tham số).

Với call(), một đối tượng có thể sử dụng một phương thức thuộc về một đối tượng khác.

Ví dụ này gọi phương thức FullName của người, sử dụng nó trên Person1:fullName method of person, using it on person1:

Thí dụ

const person = {& nbsp; & nbsp; firstName: "john", & nbsp; & nbsp; lastName: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}}
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
const person1 = {
  firstName:"John",
  lastName: "Doe"
}
const person2 = {
  firstName:"Mary",
  lastName: "Doe"
}

// Điều này sẽ trả lại "John Doe": person.fullname ();
person.fullName.call(person1);

Hãy tự mình thử »

Trong ví dụ trên, this đề cập đến đối tượng người.fullName method of person, using it on person2:

Thí dụ

const person = {& nbsp; & nbsp; firstName: "john", & nbsp; & nbsp; lastName: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}}
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
const person1 = {
  firstName:"John",
  lastName: "Doe"
}
const person2 = {
  firstName:"Mary",
  lastName: "Doe"
}

// Điều này sẽ trả lại "John Doe": person.fullname ();
person.fullName.call(person2);

Hãy tự mình thử »

Trong ví dụ trên, this đề cập đến đối tượng người.

this.firstName có nghĩa là thuộc tính đầu tiên của điều này.

Thí dụ

const person = {& nbsp; & nbsp; firstName: "john", & nbsp; & nbsp; lastName: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}}
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

// Điều này sẽ trả lại "John Doe": person.fullname ();
  firstName:"John",
  lastName: "Doe"
}

Hãy tự mình thử »

Hãy tự mình thử »




Trong JavaScript, bạn có thể định nghĩa các hàm là phương thức đối tượng.


Ví dụ sau tạo một đối tượng (myObject), với hai thuộc tính (FirstName và LastName) và một phương thức (fullName):

const myObject = {& nbsp; & nbsp; firstName: "john", & nbsp; Tên cuối cùng: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}} myObject.fullName (); & nbsp; // sẽ trả lại "John Doe"defined.

Phương thức FullName là một hàm. Hàm thuộc về đối tượng. MyObject là chủ sở hữu của chức năng.invoked.

Thứ gọi là this, là đối tượng "sở hữu" mã JavaScript. Trong trường hợp này, giá trị của this là myObject.call a function" instead of "invoke a function".

Kiểm tra nó! Thay đổi phương thức FullName để trả về giá trị của this:

const myObject = {& nbsp; tên đầu tiên: "John", & nbsp; Tên cuối cùng: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; trả lại cái này; & nbsp; & nbsp;}}invoke, because a JavaScript function can be invoked without being called.


// Điều này sẽ trả về [đối tượng đối tượng] (đối tượng chủ sở hữu) myObject.fullName ();

Thí dụ

Đặt x = myFunction (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // x sẽ là đối tượng cửa sổ
  return a * b;
}
myFunction(10, 2);           // Will return 20

Hãy tự mình thử »

Gọi một chức năng như một hàm toàn cầu, khiến giá trị của việc này trở thành đối tượng toàn cầu. Sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.

Gọi một chức năng như một phương thức

Trong JavaScript, bạn có thể định nghĩa các hàm là phương thức đối tượng.

Ví dụ sau tạo một đối tượng (myObject), với hai thuộc tính (FirstName và LastName) và một phương thức (fullName):

const myObject = {& nbsp; & nbsp; firstName: "john", & nbsp; Tên cuối cùng: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}} myObject.fullName (); & nbsp; // sẽ trả lại "John Doe"
Global variables, methods, or functions can easily create name conflicts and bugs in the global object.

Phương thức FullName là một hàm. Hàm thuộc về đối tượng. MyObject là chủ sở hữu của chức năng.

Thí dụ

Đặt x = myFunction (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // x sẽ là đối tượng cửa sổ
  return a * b;
}
window.myFunction(10, 2);    // Will also return 20

Hãy tự mình thử »


Gọi một chức năng như một hàm toàn cầu, khiến giá trị của việc này trở thành đối tượng toàn cầu. Sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.this?

Gọi một chức năng như một phương thứcobject.

Trong JavaScript, bạn có thể định nghĩa các hàm là phương thức đối tượng. object depends on how this is being invoked (used or called).

Ví dụ sau tạo một đối tượng (myObject), với hai thuộc tính (FirstName và LastName) và một phương thức (fullName):

Trong một phương thức đối tượng, this đề cập đến đối tượng.object.
Một mình, this đề cập đến đối tượng toàn cầu.global object.
Trong một chức năng, this đề cập đến đối tượng toàn cầu.global object.
Trong một hàm, ở chế độ nghiêm ngặt, thisundefined.
Trong một sự kiện, this đề cập đến yếu tố đã nhận được sự kiện.element that received the event.
Các phương thức như call(), this2 và this3 có thể giới thiệu this cho bất kỳ đối tượng nào.any object.


Đối tượng toàn cầu

Khi một hàm được gọi mà không có đối tượng chủ sở hữu, giá trị của this trở thành đối tượng toàn cầu.

Trong một trình duyệt web, đối tượng toàn cầu là cửa sổ trình duyệt.

Ví dụ này trả về đối tượng cửa sổ là giá trị của this:

Thí dụ

Đặt x = myFunction (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // x sẽ là đối tượng cửa sổ

hàm myFunction () {& nbsp; & nbsp; trả về cái này; }
  return this;
}

Hãy tự mình thử »

Gọi một chức năng như một hàm toàn cầu, khiến giá trị của việc này trở thành đối tượng toàn cầu. Sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.this to be the global object.
Using the window object as a variable can easily crash your program.


Gọi một chức năng như một phương thức

Trong JavaScript, bạn có thể định nghĩa các hàm là phương thức đối tượng.

Ví dụ sau tạo một đối tượng (myObject), với hai thuộc tính (FirstName và LastName) và một phương thức (fullName):myObject), with two properties (firstName and lastName), and a method (fullName):

Thí dụ

Đặt x = myFunction (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // x sẽ là đối tượng cửa sổ
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();         // Will return "John Doe"

Hãy tự mình thử »

Gọi một chức năng như một hàm toàn cầu, khiến giá trị của việc này trở thành đối tượng toàn cầu. Sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.fullName method is a function. The function belongs to the object. myObject is the owner of the function.

Gọi một chức năng như một phương thứcmyObject.

Trong JavaScript, bạn có thể định nghĩa các hàm là phương thức đối tượng.fullName method to return the value of this:

Thí dụ

Đặt x = myFunction (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // x sẽ là đối tượng cửa sổ
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

hàm myFunction () {& nbsp; & nbsp; trả về cái này; }
myObject.fullName();

Hãy tự mình thử »

Gọi một chức năng như một hàm toàn cầu, khiến giá trị của việc này trở thành đối tượng toàn cầu. Sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.


Gọi một chức năng như một phương thức

Trong JavaScript, bạn có thể định nghĩa các hàm là phương thức đối tượng.

Ví dụ sau tạo một đối tượng (myObject), với hai thuộc tính (FirstName và LastName) và một phương thức (fullName):

Thí dụ

Đặt x = myFunction (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // x sẽ là đối tượng cửa sổ
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

hàm myFunction () {& nbsp; & nbsp; trả về cái này; }
const myObj = new myFunction("John", "Doe");

Hãy tự mình thử »
myObj.firstName;

Hãy tự mình thử »

Gọi một chức năng như một hàm toàn cầu, khiến giá trị của việc này trở thành đối tượng toàn cầu. Sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.

Gọi một chức năng như một phương thức
The value of this will be the new object created when the function is invoked.