Hàm .apply jQuery là gì?


Câu trả lời:


125

applygọi một hàm với một tập hợp các đối số. Nó không phải là một phần của jQuery, nó là một phần của Javascript cốt lõi. Tuy nhiên, có đề cập đến nó trong tài liệu jQuery:

http://docs.jquery.com/Types#Context.2C_Call_and_Apply

Cú pháp:

somefunction.apply(thisObj, [argsArray])

Các cuộc gọi trên chức năng somefunction, thiết lập thisđể thisObjtrong phạm vi của chức năng, và đi qua trong các đối số từ argsArraynhư các đối số cho hàm.


2
Liên quan là hàm [ .call () ] ( mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/… ) cũng nhận một this, nhưng theo sau là một loạt các đối số được liệt kê riêng lẻ thay vì một mảng chứa các đối số .
Peter Ajtai

những gì bên dưới sẽ làm gì hơn? $ .when.apply (null, object) .done (callback);
Gohel Kiran 12/113

@ user1531437 Cuộc gọi đó $.when(object).done(callback);, nhưng trong hàm $.when, thisđược đặt thành tham số đầu tiên, tức là null. Có thể cho rằng, người ta nên sử dụng $.when.call(null, object).done(callback);vì tham số thứ hai của .applyđược coi là một mảng
Luke Madhanga

Hàng xa là jQuery chức năng ủy quyền , đó là hữu ích để thay đổi giá trị của thisnghĩa biến bối cảnh, cách Javascript của mẹ đẻ applycó thể làm
The Red Pea

5

Về cơ bản, áp dụng sẽ gọi một hàm với ngữ cảnh được đặt thành đối tượng mà bạn áp dụng hàm. Điều này có nghĩa là bên trong hàm, tham chiếu thissẽ tham chiếu đến đối tượng đó.


Đối với bất kỳ ai làm việc với jQuery và đến câu trả lời này, bạn sẽ cần sử dụng $(this)để lấy đối tượng jQuery được liên kết và có quyền truy cập vào các phương thức jQuery.
R. Schreurs

@ R.Schreurs bạn cũng cần sử dụng đối tượng jQuery.fn như đã thấy ở đây: stackoverflow.com/a/27374435/674033
AVProgrammer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.