首页 > 解决方案 > JavaScript 中的对象属性

问题描述

我开始学习 JavaScript,但我无法掌握一件事。

myDog.name = "Happy Camper"; 
myDog["name"] = "Happy Camper";

并且

var myDog = {
  "name" : "Coder",
  "legs" : 4,
  "tails" : 1,
  "friends" : ["everything!]"
};

一切都在这里-带括号和不带括号有什么区别?

谢谢你。

标签: javascriptarrays

解决方案


在 JavaScript 中,[]用于确定Array literal,但也是调用 Object 键的方法之一,因此您会感到困惑。

const myArray = []; // Returns an empty array
const someObjectValue = myObject["myKey"] // returns the value of an object's key

请注意,您还可以使用点而不是括号来获取对象值:

// They are the same thing.
const value = myObject["myKey"];
const sameValue = myObject.myKey;

它们基本上是实现同一目标的两种不同方式。

有一个区别,我想。使用括号,您可以将其他不允许的键分配给对象。

例子:

const myObject = {};

// Set
myObject.0 = "Hello!"; // throws error
myObject[0] = "Hello!"; // works!

myObject.some-key = "Hello!"; // throws error
myObject["some-key"] = "Hello!"; // works!

// Get
const value = myObject.0; // throws error
const value = myObject[0]; // works!

const value = myObject.some-key; // throws error
const value = myObject["some-key"]; // works!

推荐阅读