2012-02-14 7 views
28

私はアドオン開発、いくつかのFFをやっていると私はこのような構文を見ている:このJavaScript構文は何ですか:{Ci、CC}?

var {Cc, Ci} = require('chrome'); 

その構文があり、それはFFの開発または何か他に特別なの場合はどのような興味があるだけ。

+0

だろうどのように私はそれは、Visual Studio + ReSharperのにエラーのように見えることを防ぐことができますか? ReSharperはjavascriptの自然な構文として認識されないため、構文エラーとして表示し続け、ドキュメントを再フォーマットすることはできません。 –

+0

この*以前の質問は、どのようにして2013年に尋ねられたものと同じものであるとマークされましたか? – ruffin

答えて

8

構文が何であるかについてのドメニクの答えを参照してください。これは、非構造化割り当てと呼ばれます。これはFFアドオン開発に必要な理由です。

これは何か、なぜそれがhttp://groups.google.com/group/mozilla-labs-jetpack/browse_thread/thread/d288b79903b5b434に必要なのかについての議論があります。

答えは「はい」です。Firefoxのアドオン開発に特有です。関連文書はhttps://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/module-development/chrome.htmlにあります。

+5

間違った答えです。それはECMA 6の構文であり、Firefoxが構造化の割り当てを実装した最初のブラウザであるからといって、FIrefoxアドオンの開発にのみ関連しているわけではありません。 –

+2

私は間違った質問に答えたと思う - FFアドオンのためになぜ今あなたが '' chrome ''を必要とする必要があるのか​​尋ねていると思った。残念ながら答えは受け入れられたので削除できません。 – Bill

+0

ああ、それを持っています! '(... ')'は単純な関数呼び出しであるため、 '{...} ='構文が奇妙なものであることはかなりわかりました。しかし、質問は曖昧ではない、あなたは正しい! –

25

これは、非構造化割り当てと呼ばれます。 JavaScript 1.7の機能です。ここで、「JavaScript」は、ECMAScript標準へのMozilla固有の拡張機能を指します。

inclusion in the next version of JavaScriptです。

同等のECMAScript 5のコードは

var __temp = require('chrome'); 
var Cc = __temp.Cc; 
var Ci = __temp.Ci; 
+0

ありがとう、私は最終的に私のエディタで構文エラーを取り除き、私のコードが再び評価されています。 – razzak

+0

しかし実際には変数 '__temp'が現れますか?そうでなければ、同値は大まかなものに過ぎない。 – hippietrail

関連する問題