繁体   English   中英

如何在Javascript中创建object里面的object

[英]How to create object inside object in Javascript

我正在尝试创建一个 object - 其中的每个参数都是另一个 object:

var divTextPerScreenWidthMap = new Object(
       {'360','click'},
       {'480','click it'},
       {'768','click it right'},
       {'1024','you know you want to click it'},
       {'1280','click this button which is very long will help you'}
    );

这不起作用,因为我收到错误。 我需要如何编写它才能使其工作? 我应该将外部 object 更改为数组吗?如何更改?

你有语法错误。

首先,对象字面量遵循以下语法:

var literal = {
    "Name": "value",
    "Array": [],
    "NestedObject": {}
};

名称值分隔符是冒号,而不是逗号。

编辑

上面的代码可以改写如下

// declaration via array initializer
var myArray = [
   // name : value syntax
   {'360': 'click'},
   // values separated by comma
   {'480': 'click it'},
   {'768': 'click it right'},
   {'1024': 'you know you want to click it'},
   {'1280': 'click this button which is very long will help you'}
]

但是此时您无法通过这样的名称访问您的对象:

var firstObject = myArray[0];
// will throw an error
firstObject.360 = "not click";

您只能按如下方式使用它

firstObject["360"] = "not click";

因此,我建议您根据变量命名规则来命名属性。

在 javascript 对象中是一个简单的地图。 最好使用文字 {} 而不是 od new Object();

  var myObj = {      
     prop : {},
     prop2 : {} 
   }

您还可以像这样创建嵌套对象:

 let obj1 = {}; obj1['title'] = 'Vehicles'; let obj2 = {}; obj2['name'] = 'Honda City'; obj1['cars'] = obj2; console.log(obj1);

在object中创建一个方法,在该方法中创建一个新的object并返回。

const obj = {
  one: "one is just a property",
  two: function(){
    const newObject = {
      three: "now two will return new a new object"
    }
    return two;
  }
}

不要通过其构造函数创建Object ,使用文字语法{}

此外,对象具有键和属性。 您的对象似乎只有值。 您的意思是使用Array吗?

您完全忘记了为您的值提供密钥。 如果您不想使用键,请使用数组:

var divFoo = [
  [360, "click"],
  [480, "click it"] // et cetera
];

这会给你一个数组数组。 例如, divFoo[0][0] == 360

如果你想要钥匙,使用一个对象:

var divFoo = {
  "360": "click",
  "480": "click" // et cetera
}

这为您提供了简单的对象。 divFoo[360] == "click"

或者您可以使用一组对象来进行更多描述:

var divFoo = [
  {time: 360, text: "click"},
  {time: 480, text: "click it"} // et cetera
];

在这种情况下, divFoo[1].text == "click it"

另外,还有几点提示:

  • 不要使用new Objectnew Array 他们是多余的。
  • 如果将整数用作值,则无需引用整数。

将您的对象集合表示为数组是有意义的:

 var divTextPerScreenWidthMap = [ {360:'click'}, {480:'click it'}, {768:'click it right'}, {1024:'you know you want to click it'}, {1280:'click this button which is very long will help you'} ]; //You could iterate over your array of objects with a for loop: var i, value; for (i=0; i < divTextPerScreenWidthMap.length; i++) { value = divTextPerScreenWidthMap[i]; console.log(value); }; //Alternatively, you could represent your data structure as one object: var divTextPerScreenWidthMap = { 360:'click', 480:'click it', 768:'click it right', 1024:'you know you want to click it', 1280:'click this button which is very long will help you' }; //So now if you have a screen width, you can quickly get back the corresponding message: var screenWdith = 360; alert(divTextPerScreenWidthMap[screenWidth]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM