Tôi đang cố gắng tạo lại cấu trúc đối tượng của jQuery (1.7.1) để hiểu rõ hơn về cách hoạt động của nó. Tôi có đoạn mã sau:Làm thế nào jQuery có thể trả về một mảng và vẫn có nó là một đối tượng jQuery?
(function (window, undefined) {
var document = window.document,
navigator = window.navigator,
location = window.location;
window.myclass = (function() {
var __con = function() {
return new __con.fn.init();
}
__con.fn = __con.prototype = {
'init' : function() {
return this;
},
'test' : function() {
console.log('test1');
return this;
}
}
__con.fn.init.prototype = __con.fn;
__con.test = function() {
console.log('test2');
return this;
}
return __con;
})();
})(window);
console của tôi trông như thế này:
> myclass().test();
test1
< __con.fn.__con.init
> myclass.test();
test2
< function() {
return new __con.fn.init();
}
nhầm lẫn của tôi là như thế nào jQuery là có thể trở lại một mảng và vẫn còn có nó là một đối tượng jQuery? jQuery được thực hiện từ giao diện điều khiển có thể giống như thế:
> $(document.body)
[<body>…</body>]
> $(document.body).css('width');
"1263px"
Trong thực tế, có một điều mà tôi chắc chắn nhận thấy là sự thiếu <
cho đối tượng trở lại. Vậy chính xác những gì đang xảy ra ở đây? Tôi đã tìm kiếm trên Google để giải thích cách jQuery hoạt động, không có kết quả. Có lẽ tôi chỉ nhận được thuật ngữ sai, tôi không chắc chắn. Có vẻ như tôi không thể tìm thấy bất kỳ nguồn chi tiết nào giải thích điều này.
Có lẽ mã của tôi chưa hoàn chỉnh, nhưng cấu trúc cơ bản mà tôi có cho đến nay là những gì tôi đã có thể trích xuất từ trước đến nay. Xin vui lòng sửa những gì tôi có cho đến nay nếu nó là sai, không đầy đủ, hoặc không hiệu quả, và bằng mọi cách xin vui lòng cung cấp đọc tốt về: thực hành tốt nhất
- Javascript
- Làm thế nào jQuery làm việc
- hiệu quả Javascript lớp
- mọi thứ tất cả về cấu trúc đối tượng Javascript
- Singletons
- Nguyên mẫu
- Bất cứ điều gì khác liên quan đến bất cứ loại cấu trúc này được gọi là
Tôi không chắc mình hiểu câu hỏi của bạn hoàn toàn, nhưng hãy xem câu trả lời này tôi đã đăng một lúc và xem liệu nó có giúp ích không: http: // stackoverflow.com/questions/7651404/how-does-jquery-create-array-objects/7651455 # 7651455 – davin
Tôi đã tìm thấy các cuộc đàm phán này cực kỳ hữu ích: http://yuiblog.com/crockford/ – romario333
Không hoàn toàn chắc chắn về cách mà cộng đồng wiki công việc. Tôi hiểu rằng tôi sẽ không còn có thể có được danh tiếng từ nó nữa, và từ những gì tôi có thể nói với tất cả những gì bạn cần để tạo ra một câu hỏi là phải đóng câu hỏi. Nếu đó là chính xác, xin vui lòng bỏ phiếu để đóng này. Nhờ không có khả năng trả lời thành công câu hỏi của riêng tôi bằng Google, tôi muốn đây là nơi để tìm hiểu tất cả về 'jquery-internals'. Yea hoặc nay để tạo thành một wiki cộng đồng? – Shea