CoffeeScriptコードをNode.jsとjavascriptの両方で実行するには、どうしたらよいですか?明らかな答えは「Node.jsを使用しない」機能ですが、2つのコード間のコードの移植を中断する他のマイナーな「落とし穴」があるかどうかは疑問でした。Node.jsとブラウザJSの違いに対してコンパイルされたCoffeescript
3
A
答えて
5
心配するちょうど2つのものがある、(あなたがsetTimeout
/clearTimeout
とsetInterval
/clearInterval
とMath
に取り付けたもの以外のすべての機能を使用しないなど)あなたは言語自体を越えたのAPIに依存しないと仮定すると、 :
あなたがではなく、ブラウザでは、ノードに周りにいる
Array::forEach
とArray::indexOf
などの新しいJSの機能に依存することができます。 CoffeeScriptは、それぞれfor x in arr
とif x in arr
の構文でこれらの2つの問題を避けるのに役立ちます。ブラウザでは、グローバルオブジェクトは
window
です。ノードでは、グローバルオブジェクトはglobal
ですが、通常は代わりに項目をエクスポートします。したがって、通常の解決策は、Underscore.jsなどで示されているように、モジュールの上部にroot = this
と書いて、すべてをroot
に添付することです。最も外側のスコープでは、this
は、ブラウザではwindow
を指し、ノードではexports
を指します。
ここでは、モジュールを1つのスクリプトで定義しているとします。そうでない場合は、sstephensonのstitchのようなツールを見てください。ノードの中にrequire
というモジュールを作成しておき、それらをブラウザで「つなぎ合わせる」ことができます。
関連する問題
- 1. coffeescriptの 'extends'とnode.jsの 'util.inherits'の相違点
- 2. CoffeeScriptコンパイルexpress.static __dirname + '/ public'が間違っています
- 3. CoffeeScriptのNode.js module.exports
- 4. CoffeeScriptはPlay 2.1.0でコンパイルされていません
- 5. イベントを通知するログインしてログアウトしたバックボーンjsとcoffeescript
- 6. 先にコンパイルされたコードとネイティブにコンパイルされたコードの違いは何ですか?
- 7. CoffeeScriptのコンパイル
- 8. のNode.jsとCoffeeScriptの - モカとゾンビ
- 9. 私は<strong>ノードでのCoffeeScript</strong>とブラウザでの作業とブラウザだけのために意味のファイルをコンパイルしたいんだ
- 10. 問題私はCoffeeScriptのに次のJSスニペットを変換しようとしていますCoffeeScriptの
- 11. Coffeescript、Facebook JS APIとスコープ
- 12. python "elif"はelse:ifと違ってコンパイルされていますか?
- 13. Node.js + CoffeeScript - modules/class confusion
- 14. Node.jsとtomcatとの違い
- 15. contenteditableネストされたブラウザの相違
- 16. Node.js - 外部のJSとCSSファイル(単にnode.jsを使用していません)
- 17. GuardはCoffeescriptを再コンパイルしない
- 18. Flash/ActionScript3でコンパイルされたソースサイズ/相違
- 19. CoffeeScript(およびJS)で関数が呼び出されないことのテスト
- 20. Node.js CoffeeScript非同期スタイルとループ
- 21. コンパイルされたプログラムはどのようにOSと対話しますか?
- 22. ノードjsとエクスプレスjsの違い
- 23. JS/Coffeescriptの環境変数
- 24. CoffeeScript - サブディレクトリのコンパイル順序
- 25. ソースからのパッケージとコンパイルされたバイナリからのパッケージのインストールの違い
- 26. ブラウザが終了したときに期限切れになるようにjsで設定されたCookie
- 27. は、JSはCoffeeScriptのに変換
- 28. node.jsとmongoose JSを使用して作成されたスキーマファイルをどこに置くか分かりません
- 29. JavaScriptの代わりにCoffeeScript ASTをCoffeeScriptにコンパイルするにはどうすればよいですか?
- 30. CoffeeScriptコンパイルon Windows with NodeJS
+1「root = this」のために - カッツ氏の[安心してこの記事の中のトーン](http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and)にもかかわらず - これは、バーナム氏が言うように、あなたの人生ははるかに単純になります。 – fish2000
受け入れられた回答としてマークする必要があります –