javascript - JavaScript 中的对象属性
问题描述
我开始学习 JavaScript,但我无法掌握一件事。
myDog.name = "Happy Camper";
myDog["name"] = "Happy Camper";
并且
var myDog = {
"name" : "Coder",
"legs" : 4,
"tails" : 1,
"friends" : ["everything!]"
};
一切都在这里-带括号和不带括号有什么区别?
谢谢你。
解决方案
在 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!
推荐阅读
- java - 检查最后一个数组元素
- python - `/(?P 中的 P 是什么意思
\d+)$` - database - PostgreSQL 启动几分钟,然后失败
- python - 为什么我的 Python 函数中有语法错误?
- javascript - 不知道如何在块之间添加一点空间
- asp.net-mvc-5 - ASP.Net MVC5:使用身份登录后如何为用户附加角色
- php - 通过 php 脚本执行() schtasks.exe 在 Windows Server 2012 中不起作用
- c# - 在 Get/Post 请求中发送序列化数据
- discord.js - Discord.js 创建私人语音频道和角色
- angular - 如何迭代Angular 5组件中的对象