Hàm Apply trong JavaScript
- Trang trước Gọi hàm JS
- Trang tiếp theo Gán hàm JS
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"
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"]);
và 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");
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
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
Đầ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
Ví dụ
Math.max.apply(" ", [1,2,3]); // Cũng sẽ trả về 3
Ví dụ
Math.max.apply(0, [1,2,3]); // Cũng sẽ trả về 3
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.
- Trang trước Gọi hàm JS
- Trang tiếp theo Gán hàm JS