2011-07-06 5 views
6

私はCouchDBとcouchappを理解しようとしています。私はそれを見ていますが、私はどのような状況においても「this」の使用が不足しているのを見ています。私は、showオブジェクトがドキュメントとリクエストを取得し、リストやビューで操作できることを理解しています。これらの操作はすべてJavascriptオブジェクトです。しかし、CouchAppはまた、文字列として、READMEファイル、Mustacheテンプレートなど、あらゆる種類のものを格納しているようです。それは何とか彼らにアクセスする必要があります。 showの文脈におけるthis演算子は、何らかの形で設計ドキュメントルートへのアクセスを提供し、require構文以外の何らかの手段でオブジェクトに1つのアクセスを与えますか? JavaScriptでCouchDBでは、「this」は何を指していますか?

は、thisは、具体的には、「すべてのアクティブな実行コンテキストに関連付けられこの値があり、すべてのコンテキストで何とかを定義しなければならない。この値が呼び出し側に依存し、コードのタイプがあります(ECMA-262仕様、第3版、第10.1.7項)、実行コンテキストに関連する値は変更不能です。 CouchDBの設計文書doc showの実行のコンテキストでは、どういう意味ですか? viewまたはlistは機能しますか?

答えて

5

this変数(すべての場合)(_list、_show、_update)は設計ドキュメントそのものです。

(厳密に言えば、それはあなたが外に動作しているリスト/表示/表示機能が含まれている設計ドキュメントのJavaScriptのオブジェクト表現を参照。)

+0

+1。私はあなたが気にしないことを願っていますが、あなたの答えを編集して決定的であり、より確信しています。 – JasonSmith

+0

また、そのような関数の最初の行が 'var ddoc = this;'である多くのコードを見ることができます。後で、彼らは 'ddoc.views.foo'や' ddoc.templates.bar'と言うでしょう。 – JasonSmith

+0

ありがとう、@ jhs :) –

関連する問題