Tôi đang viết một plugin jQuery sẽ cần các chức năng gọi lại được thực hiện, ví dụ, khi một tùy chọn được chọn từ <select>
, plugin được áp dụng cho.
Tôi đã nhìn thấy các plugin cho phép bạn xác định chức năng trong các tùy chọn bạn vượt qua nó, như thế này:
$('div.foo').pluginBar({
option1: 'red',
someEvent: function() {
// Do stuff
}
});
Tôi muốn để có thể định nghĩa một hàm mặc định someEvent
trong mã Plugin của tôi, nhưng nếu người dùng định nghĩa hàm đó trong các tùy chọn mà họ vượt qua, nó sẽ ghi đè lên hàm mặc định. Điều này có thể xảy ra với $.extend()
hoặc tôi có đang tìm kiếm địa điểm không chính xác không?
Tôi đã xem hướng dẫn plugin authoring, nhưng tôi không nghĩ rằng nó bao gồm việc mở rộng hành vi mặc định của các chức năng ở bất kỳ đâu. Tôi đã đọc những điều về cách sử dụng hàm init:
, nhưng tôi chỉ muốn có thể xác định hàm (bên trong không gian tên plugin) và thay đổi nó bằng các tùy chọn được chuyển đến plugin.
@ T.J.Crowder Xin lỗi, đã có nhiều nhận xét thất vọng cá nhân hơn. Sẽ từ bỏ. – Zirak
Trong JavaScript (không giống như hầu hết các ngôn ngữ chính hiện tại khác), các hàm là các đối tượng lớp đầu tiên. Điều đó có nghĩa là bạn có thể làm điều tương tự với các tham chiếu hàm mà bạn có thể làm với bất kỳ loại tham chiếu đối tượng nào khác, bao gồm cả việc này. Các câu trả lời thể hiện như thế nào, nhưng điểm mấu chốt để lấy đi là các tham chiếu hàm là các giá trị giống như các tham chiếu đối tượng (vì chúng * là các tham chiếu đối tượng). Nó cực kỳ hữu ích. :-) –
@ T.J.Crowder Cảm ơn rất nhiều vì đã giải thích. – Bojangles