2011-07-06 84 views
6

我想了解CouchDB和couchapp,並且在我經歷的過程中,我發現在任何給定的上下文中都使用「this」的缺乏。據我所知,show對象獲取文檔和請求,並允許使用列表和視圖對它們進行操作。這些操作都是Javascript對象。但是CouchApp似乎也將各種各樣的東西存儲爲字符串:自述文件,小鬍子模板等等。它必須以某種方式訪問​​它們。 show上下文中的this運算符是否以某種方式提供對設計文檔根目錄的訪問權限,通過require語法以外的其他方法提供對對象的一次訪問權限?在CouchDB顯示中,'this'是指什麼?

在Javascript中,this具有在每個上下文中定義不知何故,特別是「有一個與每一個活動的執行上下文相關聯的值,值取決於主叫方和代碼的類型是執行並在控制進入執行上下文時確定。與執行上下文相關的值是不可變的「(ECMA-262規範,第3版,第10.1.7節)。在正在執行的CouchDB設計文檔show函數中,這意味着什麼? A viewlist功能?

回答

5

this變量在所有情況下(_list,_show,_update)都是設計文檔本身。

(嚴格地說,它是指包含要經營出的列表/顯示/視圖功能設計文檔的JavaScript對象表示。)

+0

+1。我希望你不介意,但我編輯你的答案是確定的和更有信心的(因爲它實際上是完全正確的)。 – JasonSmith

+0

您還會看到很多代碼,其中這些函數的第一行是'var ddoc = this;'。之後,他們會說'ddoc.views.foo'或'ddoc.templates.bar',因爲感覺很自然。 – JasonSmith

+0

非常感謝,@ jhs :) –

相關問題