Hàm Apply trong JavaScript

phương thức tái sử dụng

Bằng cách apply() phương thức, bạn có thể viết các phương thức cho các đối tượng khác nhau.

phương thức apply() của JavaScript

apply() phương thức với call() phương thức rất tương tự:

Trong ví dụ này,person của fullName phương thức đượcÁp dụngđến person1:

Ví dụ

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName: "Bill",
    lastName: "Gates",
}
person.fullName.apply(person1);  // Sẽ trả về "Bill Gates"

Thử ngay

Khác biệt giữa call() và apply()

Khác biệt là:

call() phương thức chấp nhận từng tham số.

apply() phương thức chấp nhận các tham số dưới dạng mảng.

Nếu muốn sử dụng mảng thay vì danh sách tham số, thì apply() Rất tiện lợi.

Điều chỉnh phương thức với tham số

apply() 方法接受数组中的参数:

Ví dụ

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"Bill",
  lastName: "Gates"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);

Thử ngay

call() 方法对比:

Ví dụ

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"Bill",
  lastName: "Gates"
}
person.fullName.call(person1, "Oslo", "Norway");

Thử ngay

Tạo phương pháp max mô phỏng trên mảng

Bạn có thể sử dụng Math.max() Phương pháp tìm số lớn nhất trong danh sách số:

Ví dụ

Math.max(1,2,3);  // Sẽ trả về 3

Thử ngay

Do JavaScript array không có phương pháp max(), vì vậy bạn có thể áp dụng Math.max() Phương pháp.

Ví dụ

Math.max.apply(null, [1,2,3]); // Cũng sẽ trả về 3

Thử ngay

Đầu tiên (null) không quan trọng. Trong ví dụ này không sử dụng nó.

Những ví dụ này sẽ cho ra kết quả tương tự:

Ví dụ

Math.max.apply(Math, [1,2,3]); // Cũng sẽ trả về 3

Thử ngay

Ví dụ

Math.max.apply(" ", [1,2,3]); // Cũng sẽ trả về 3

Thử ngay

Ví dụ

Math.max.apply(0, [1,2,3]); // Cũng sẽ trả về 3

Thử ngay

Chế độ chặt chẽ của JavaScript

Trong chế độ chặt chẽ của JavaScript, nếu apply() Nếu đầu tiên của phương pháp không phải là đối tượng, thì nó sẽ trở thành chủ sở hữu của hàm được gọi (đối tượng). Trong chế độ 'không chặt chẽ', nó trở thành đối tượng toàn cục.