1

私は他人のコードを理解しようとしています。彼は持っている

task.prototype.taskAttributes = {
  'header' : [
    {'name' : 'display_type', 'display' : 'Display Type', 'type' : 'select', 'options' : {
      'default' : 'Default',
      name1 : 'Peter',
      name2 : 'Ted',
     }
    },
    {'name' : 'background', 'display' : 'Background', 'type' : 'image'},
    {'name' : 'background_position', 'display' : 'Background Position', 'type' : 'text'},
    {'name' : 'credit', 'display' : 'Background Credit', 'type' : 'text'}],

  'input' : [
    {'name' : 'display_type', 'display' : 'Display Type', 'type' : 'select', 'options' : {
      'default' : 'Default',
      title1 : 'manager',
      title2 : 'employee'}
    },
    {'name' : 'background', 'display' : 'Background', 'type' : 'image'},
    {'name' : 'background_position', 'display' : 'Background Position', 'type' : 'text'},

  'image' : [{'name' : 'column', 'type' : 'select', 'options' : ['', 'left', 'right']}]
}

' header' と ' input' がオブジェクト プロパティかどうかわかりません。header「 」および「input」 の下の属性は何ですか?

これらは何をしますか:

{'name' : 'display_type', 'display' : 'Display Type', 'type' : 'select', 'options' : {
  'default' : 'Default',
  name1 : 'Peter',
  name2 : 'Ted',
 }
},
{'name' : 'background', 'display' : 'Background', 'type' : 'image'},
{'name' : 'background_position', 'display' : 'Background Position', 'type' : 'text'},
{'name' : 'credit', 'display' : 'Background Credit', 'type' : 'text'}],

オブジェクトのプロパティを宣言することを考えました。

attribute={header:'header', input:'input'}

なぜ彼がこれほど多くの属性を持っているのか私にはわかりません。

助けてくれてありがとう!

4

2 に答える 2

4

headerinput 実際に のオブジェクト プロパティでありtaskAttributesimageも同様です。

taskAttributes = {
  // Three object properties, each is an array
  header: [],
  input: [],
  image: []
}

それらのそれぞれは、 、、などのプロパティを持つ[]オブジェクトの配列です。これは、質問の「これらは何をするのか」の部分に対処します。{}namedisplaytype

// Example object element of the parent attribute arrays:
// There are multiples of these objects for each property header, input, image
{'name' : 'background', 'display' : 'Background', 'type' : 'image', 'options': {...}}

たとえば、最初の配列にアクセスするには、次nameのように配列キーにアクセスします。header[0]

taskAttributes.header[0].name
// 'displayType'

// And the third array element [2]
taskAttributes.header[2].name
// 'credit'

headers両方のとの最初の配列要素には、input次のような入れ子のレベルがもう 1 つあります。

// Property named options is an object...
'options' : {
  'default' : 'Default',
  title1 : 'manager',
  title2 : 'employee'
}

optionsそれは、それらのそれぞれについて参照されるさらに別のオブジェクトです。

taskAttribtues.header[0].options.title1
// 'manager'
于 2012-12-19T21:04:24.520 に答える
1

はい、headerinputおよびimageはオブジェクトのプロパティでありtask.prototype.taskAttributes、それぞれにオブジェクトの配列が含まれています。コードをhttp://jsbeautifier.org/にパイプすると、インデントでリテラル構造を強調することができます。

task.prototype.taskAttributes = {
    'header': [{
        'name': 'display_type',
        'display': 'Display Type',
        'type': 'select',
        'options': {
            'default': 'Default',
            'name1': 'Peter',
            'name2': 'Ted',
        }
    }, {
        'name': 'background',
        'display': 'Background',
        'type': 'image'
    }, {
        'name': 'background_position',
        'display': 'Background Position',
        'type': 'text'
    }, {
        'name': 'credit',
        'display': 'Background Credit',
        'type': 'text'
    }],
    'input': [{
        'name': 'display_type',
        'display': 'Display Type',
        'type': 'select',
        'options': {
            'default': 'Default',
            'title1': 'manager',
            'title2': 'employee'
        }
    }, {
        'name': 'background',
        'display': 'Background',
        'type': 'image'
    }, {
        'name': 'background_position',
        'display': 'Background Position',
        'type': 'text'
    },
    'image': [{
        'name': 'column',
        'type': 'select',
        'options': ['', 'left', 'right']
    }]
};
于 2012-12-19T21:08:34.040 に答える