-3

構文の何が問題なのか誰か教えてください。配列のJavaScriptオブジェクトに対して次の宣言があります。

$.fn.eCardify.frames = {
    nonie: {
        {flip_over_envelope, flip_over_envelope},
        {open_envelope, open_envelope},
        {show_card, show_card},
        {open_card, open_card}          
    },
    ie: {
        {flip_over_envelope_ie, flip_over_envelope_ie},
        {open_envelope_ie, open_envelope_ie},
        {show_card_ie, show_card_ie},
        {open_card_ie, open_card_ie}
    }
}

そして、私はこの方法でそれにアクセスしようとしています:

function step(){
    if($.fn.eCardify.settings.is_ie){
        $.fn.eCardify.frames.ie[$.fn.eCardify.frame]();
    }else{
        $.fn.eCardify.frames.nonie[$.fn.eCardify.frame]();
    }
    $.fn.eCardify.frame++;
}

ただし、chrome (およびおそらく他のブラウザー) は、私の配列宣言を好みません。Uncaught SyntaxError: Unexpected token {配列宣言の 2 行目に表示されます。

私は何を間違っていますか?

4

4 に答える 4

6

{}配列ではなくオブジェクト用です

$.fn.eCardify.frames = {
    nonie: [
        [flip_over_envelope, flip_over_envelope],
        [open_envelope, open_envelope],
        [show_card, show_card],
        [open_card, open_card]
    ],
    ie: [
        [flip_over_envelope_ie, flip_over_envelope_ie],
        [open_envelope_ie, open_envelope_ie],
        [show_card_ie, show_card_ie],
        [open_card_ie, open_card_ie]
    ]
}
于 2013-10-01T15:24:16.487 に答える
3

配列は[].

{}オブジェクト用です(キーと値のペアを持つ)

于 2013-10-01T15:24:10.503 に答える
1

括弧が中括弧であるため、あなたが持っているのは配列ではありません。配列を宣言する場合は、角かっこを使用します。

$.fn.eCardify.frames = {
    nonie: [
        [flip_over_envelope, flip_over_envelope],
        [open_envelope, open_envelope],
        [show_card, show_card],
        [open_card, open_card]          
    ],
    ie: [
        [flip_over_envelope_ie, flip_over_envelope_ie],
        [open_envelope_ie, open_envelope_ie],
        [show_card_ie, show_card_ie],
        [open_card_ie, open_card_ie]
    ]
}

この構造はまだ奇妙ですが。なぜこのようなものが必要なのですか?

于 2013-10-01T15:25:33.773 に答える
0

オブジェクトは so: のように表記{}され、配列は: で表記されます[]

この 2 つの違いの 1 つは、オブジェクトはキーと値の定義を想定しており、配列は値のセットにすぎないことです。

var arr = [val1, val2, val3];
var obj = {'key1': val1, 'key2': val2, 'key3': val3};
于 2013-10-01T15:26:36.917 に答える