$(obj)
cho phép bạn tạo một đối tượng jQuery trống rỗng, nhưng điều này là khác nhau từ $()
Ví dụ: Tôi có một giải pháp namespaced mà cần phải có sự kiện tùy chỉnh mà có hành động dựa trên một đối tượng tập trung. Tôi đã viết lớp EventHandler
của riêng tôi về cơ bản bao bọc xung quanh một cá nhân $({})
Điều này cho phép tôi có một đối tượng có thể hoạt động như người tổ chức sự kiện và trình kích hoạt của tôi. Tôi phơi bày bind(), unbind() và trigger() trong lớp EventHandler
của tôi.
$()
mặt khác không cho phép bạn liên kết và kích hoạt vì không có đối tượng cơ sở. Tôi không hoàn toàn chắc chắn ý tưởng của họ khi làm điều này vì nó sẽ có ý nghĩa hơn để có đối tượng jQuery "mặc định" hoặc "trống" là $({})
Ngắn câu chuyện: có những thứ mà $({})
thực hiện điều đó $()
không . Nhưng $([])
và $()
dường như hành động giống với số lượng thử nghiệm tối thiểu tôi đã thực hiện. Có lẽ $(new Array())
vẫn hoạt động khác, nhưng tôi không quan tâm nghiên cứu nó.
EDIT với ví dụ:
var testA = $();
testA.bind('customEvent', function() { alert('empty custom'); });
testA.trigger('customEvent'); // will not get an alert
var testB = $({});
testB.bind('customEvent', function() { alert('object custom'); });
testB.trigger('customEvent'); // will get an alert
var testC = $([]);
testC.bind('customEvent', function() { alert('array custom'); });
testC.trigger('customEvent'); // acts like testA
Nguồn
2011-08-20 19:10:00
Legacy (từ mã cũ hoặc thói quen cũ) và/hoặc rõ ràng (bằng cách lựa chọn/ưu tiên), vâng. Có nhiều cách khác nhau để nuôi một con mèo. (Nó tạo ra một đối tượng jQuery "trống" mới.) –
Bạn đã trả lời câu hỏi của riêng bạn. –
;) Thật tuyệt khi được chắc chắn. Cám ơn vì đã xác nhận! –