2012-11-17 16 views
6
$.each(data, function(i){ 
     _(catalog.add(this));//iterating through each object in objectStore 
}); 

Tôi đã tự hỏi điều gì sẽ khác biệt nếu tôi loại trừ dấu gạch dưới trước cuộc gọi hàm.Điểm khác biệt nào của _ (gạch dưới) trước khi hàm add() thực hiện?

Cập nhật

Các OP là đề cập đến các jquery indexeddb plugin.

+1

Định nghĩa của hàm '_' là gì? Nó không phải từ JQuery; có lẽ nó từ underscore.js nhưng nó không thực sự rung chuông ở đây. – Kos

Trả lời

5

Gọi hàm _ và chuyển kết quả của biểu thức catalog.add(this) làm đối số đầu tiên và duy nhất.

Chức năng đó rất có thể được định nghĩa bởi thư viện mà bạn có thể tải xuống từ underscorejs.org, một thư viện khác không có ý định tiết lộ tên biến.

+2

Xin đừng có vẻ quá xấu hổ về dấu gạch dưới; sử dụng một tên biến đơn giản có thể gây tranh cãi nhưng đó là một cách hợp lý hơn để mở rộng một ngôn ngữ hơn là gây ra sự tàn phá bằng cách sửa đổi các nguyên mẫu dựng sẵn. – Kos

+3

Nó không phải là một tên biến "đơn giản", nó là một tên biến tối nghĩa. Nó thậm chí không * nhìn * giống như một tên biến cho nhiều người (đó có lẽ là lý do tại sao câu hỏi này được hỏi ở nơi đầu tiên). – Quentin

+0

Bạn có thể tranh luận rằng '$' như trong trường hợp của jQuery (và những người khác) là tốt hơn hay thậm chí _good_ để sử dụng? Cá nhân, tôi thích '$' hơn 'jQuery', nhưng tôi không thể đứng' _' - tôi nghĩ nó lộn xộn. – Bojangles

0

http://underscorejs.org/#chaining

Tôi không chắc chắn nó làm gì cho bạn, nhưng đây là tài liệu.

+0

đó là một mã mẫu tôi đã trải qua việc sử dụng đó như một plugin jquery để đối phó với indexedDB. https://github.com/axemclion/jquery-indexeddb/blob/master/example/index.html – Spinbad

+0

danh mục là một đối tượng được gọi là cửa hàng đối tượng là một loại bảng trong indexedDB. catalog.add (this) không làm gì ngoài việc thêm mỗi giá trị trong khi lặp qua một tệp json. Tất cả những gì tôi muốn biết là lý do đằng sau việc đặt dấu gạch dưới ở đó. Có thể là một câu hỏi ngớ ngẩn. Tôi là một người mới. Tha thứ sự thiếu hiểu biết của tôi. – Spinbad

-1

EDIT:

Câu trả lời ngắn gọn: Có, không khác biệt. Gỡ bỏ nó.

Từ tệp js nguồn của bạn, _ là tên hàm cho kết quả ghi nhật ký của đối tượng lời hứa. Vì vậy, bạn phải loại bỏ nó trong mã sản xuất nếu bạn không quan tâm đến phương thức trả về phương thức add. Phương pháp add sẽ trả về các khóa mới được tạo.

Với tôi, những người này $, i, _this không có ý nghĩa.

add(this) rất đáng sợ. this là gì?

+0

có lẽ tôi nên đã đăng toàn bộ mã. Đây là https://github.com/axemclion/jquery-indexeddb/blob/master/example/index.html – Spinbad

+0

@Kyaw - bạn đã hỏi "Điều này là gì' này? " Đó là một từ khóa JavaScript được giải thích [tại MDN] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/this). – nnnnnn

+0

'this' có thể là một số đối tượng không thể nhân bản, như DOMElement. Trong trường hợp đó Indexeddb sẽ ném DataCloneError. Ý kiến ​​của tôi, 'add (this)' nói chung nên tránh. –

Các vấn đề liên quan