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

header并且确实input 的对象属性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如下所示:

// 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

是的headerinputimagetask.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 回答