2011-07-06 21 views
6

Tôi đang cố gắng hiểu CouchDB và couchapp, và khi tôi trải qua, tôi thấy một sự khan hiếm về việc sử dụng 'điều này' trong bất kỳ ngữ cảnh cụ thể nào. Tôi hiểu rằng các đối tượng show nhận tài liệu và yêu cầu và được phép hoạt động trên các danh sách và chế độ xem đó. Các hoạt động này là tất cả các đối tượng Javascript. Nhưng CouchApp cũng có vẻ như lưu trữ, như chuỗi, tất cả các loại của các thứ: tập tin README, mẫu Mustache, và như vậy. Nó phải có quyền truy cập vào chúng bằng cách nào đó. Nhà điều hành this trong ngữ cảnh của show có cung cấp quyền truy cập vào gốc tài liệu thiết kế theo một cách nào đó, cho phép một quyền truy cập vào các đối tượng bằng một số phương tiện khác ngoài cú pháp require không?Trong CouchDB cho thấy, 'điều này' đề cập đến điều gì?

Trong javascript, this phải được xác định bằng cách nào đó trong mọi hoàn cảnh, đặc biệt là "Có một giá trị này gắn liền với mỗi bối cảnh thực hiện hoạt động. Giá trị này phụ thuộc vào người gọi và các loại mã là được thực hiện và được xác định khi điều khiển đi vào ngữ cảnh thực thi. giá trị được kết hợp với ngữ cảnh thực thi này là không thay đổi "(ECMA-262 Spec, ấn bản thứ 3, phần 10.1.7). Điều đó có nghĩa là gì trong ngữ cảnh của một hàm thiết kế thực thi CouchDB show? Chức năng view hoặc list?

Trả lời

5

Biến số this, trong mọi trường hợp (_list, _show, _update) là bản thân tài liệu thiết kế.

(Nói đúng ra, nó đề cập đến một biểu tượng đối tượng JavaScript của tài liệu thiết kế chứa chức năng danh sách/hiển thị/xem bạn đang hoạt động.)

+0

+1. Tôi hy vọng bạn không quan tâm, nhưng tôi đã chỉnh sửa câu trả lời của bạn để chắc chắn và tự tin hơn (vì thực tế nó hoàn toàn chính xác). – JasonSmith

+0

Bạn cũng sẽ thấy nhiều mã nơi dòng đầu tiên của các hàm như vậy là 'var ddoc = this;'. Sau đó, họ sẽ nói 'ddoc.views.foo' hoặc' ddoc.templates.bar' vì nó cảm thấy tự nhiên. – JasonSmith

+0

Cảm ơn một nhóm, @jhs :) –

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