Gọi hàm với phương thức apply() trong JavaScript
Với phương thức apply(), 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.
Phương thức JavaScript apply()
– Phương thức apply() tương tự như phương thức call() ở bài viết Gọi hàm với phương thức call() trong JavaScript.
– Trong ví dụ sau, phương thức getFullName của car object được áp dụng (applied) trên car1, car2:
Ví dụ:
var car = { getFullName: function() { return this.brand + " " + this.name; } } var car1 = { brand:"Toyota", name: "Prius 2018" } var car2 = { brand:"Ford", name: "Everest 2018" } car.getFullName.apply(car1); // Toyota Prius 2018 car.getFullName.apply(car2); // Ford Everest 2018Try it »
Sự khác nhau giữa call() và apply()
– Phương thức call() nhận các đối số riêng lẻ.
– Phương thức apply() nhận một đối số như một mảng.
Phương thức apply() rất hữu ích khi bạn muốn sử dụng một mảng thay vì một danh sách đối số.
Phương thức apply() với các đối số (arguments)
– Phương thức apply() chấp nhận các đối số (arguments) trong một mảng:
Ví dụ:
var car = { getFullName: function(weight, color) { return this.brand + " " + this.name + ", " + weight + " kg, " + color; } } var car1 = { brand:"Toyota", name: "Prius 2018" } var car2 = { brand:"Ford", name: "Everest 2018" } car.getFullName.apply(car1, [850, "White"]); // Toyota Prius 2018, 850 kg, White car.getFullName.apply(car2, [950, "Red"]); // Ford Everest 2018, 950 kg, RedTry it »
– Trường hợp sử dụng phương thức call() thì các đối số (arguments) riêng lẻ được truyền vào:
Ví dụ:
var car = { getFullName: function(weight, color) { return this.brand + " " + this.name + ", " + weight + " kg, " + color; } } var car1 = { brand:"Toyota", name: "Prius 2018" } var car2 = { brand:"Ford", name: "Everest 2018" } car.getFullName.call(car1, 850, "White"); // Toyota Prius 2018, 850 kg, White car.getFullName.call(car2, 950, "Red"); // Ford Everest 2018, 950 kg, RedTry it »
Sử dụng apply() method mô phỏng tìm số lớn nhất trong mảng
– Bạn có thể tìm số lớn nhất (trong một danh sách các số) bằng cách sử dụng phương thức Math.max():
– Vì các mảng JavaScript không có phương thức max(), bạn có thể áp dụng phương thức Math.max() để thay thế.
– Đối số đầu tiên (null) không quan trọng. Nó không được sử dụng trong ví dụ này.
– Các ví dụ sau đây cũng cho kết quả tương tự:
[…] Xem thêm: – Gọi hàm với phương thức call() trong JavaScript. – Gọi hàm với phương thức apply() trong JavaScript. […]