2012-03-01 8 views

答えて

5

心配するちょうど2つのものがある、(あなたがsetTimeout/clearTimeoutsetInterval/clearIntervalMathに取り付けたもの以外のすべての機能を使用しないなど)あなたは言語自体を越えたのAPIに依存しないと仮定すると、 :

  1. あなたがではなく、ブラウザでは、ノードに周りにいるArray::forEachArray::indexOfなどの新しいJSの機能に依存することができます。 CoffeeScriptは、それぞれfor x in arrif x in arrの構文でこれらの2つの問題を避けるのに役立ちます。

  2. ブラウザでは、グローバルオブジェクトはwindowです。ノードでは、グローバルオブジェクトはglobalですが、通常は代わりに項目をエクスポートします。したがって、通常の解決策は、Underscore.jsなどで示されているように、モジュールの上部にroot = thisと書いて、すべてをrootに添付することです。最も外側のスコープでは、thisは、ブラウザではwindowを指し、ノードではexportsを指します。

ここでは、モジュールを1つのスクリプトで定義しているとします。そうでない場合は、sstephensonのstitchのようなツールを見てください。ノードの中にrequireというモジュールを作成しておき、それらをブラウザで「つなぎ合わせる」ことができます。

+1

+1「root = this」のために - カッツ氏の[安心してこの記事の中のトーン](http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and)にもかかわらず - これは、バーナム氏が言うように、あなたの人生ははるかに単純になります。 – fish2000

+0

受け入れられた回答としてマークする必要があります –

関連する問題