あなたはこれを行うことができます。これは一種の風変わりですが、それは動作します:
var frame,
border = frame = false;
(これは私が考える得ることができます最短だろう)
は、それが良いですか?私はそうは思わないし、あなたは本当に多くを節約しない。もっと読むことができます
実際にはいくつかの組み合わせがありますが、変数名や値を繰り返さないと実行できません。例えば。あなたも行うことができます:もちろん
var frame = false,
border = frame;
をプリミティブ値(すなわちブール、(リテラル)の番号、(リテラル)の文字列)については、この唯一の作品。オブジェクト(配列を含む)を扱う場合、両方の変数は同じオブジェクトを参照します。この場合、あなたは本当にそれらを個別に初期化する必要があります。
var frame = {},
border = {};
// DON'T DO THIS:
var frame,
border = frame = {};
更新を、私はない作業var border = frame = false;
がない理由を説明する必要性を感じるので:
var
ここで推移されていないとしこの式は実際には右から左に評価されます。まず、false
がframe
に割り当てられます。これはスコープチェーンで検索され、最悪の場合はグローバルになります。次に、frame
の値がローカル変数border
に割り当てられます。
境界線がフレームへのポインタになるのは、ちょうど好奇心の中で最短のバージョンを想定していますか? – Alex
@Alex:いいえ、プリミティブは常に値によって渡されます。オブジェクトがある場合は、両方とも同じオブジェクトを指します。実際に良い点。 –