【问题标题】:What does this square bracket suffix at the end of the object definition in JavaScript mean?JavaScript 中对象定义末尾的方括号后缀是什么意思?
【发布时间】:2019-02-18 01:38:19
【问题描述】:

JavaScript code

我在 GitHub 上浏览某人的代码时遇到了这个问题,但不知道这意味着什么。我会用谷歌搜索,但我是 JavaScript 新手,不知道如何用谷歌搜索它。任何信息将不胜感激!

var charStr = String.fromCharCode(evt.which);
var value   = (evt.type == 'keydown') ? true : false;

idx = {
  '1': 0x1,'2': 0x2,'3': 0x3,'4': 0x4,
  'Q': 0x4,'W':0x5,'E': 0x6,'R': 0xD,
  'A': 0x7,'S':0x8,'D': 0x9,'F': 0xE,
  'Z': 0xA,'X':0x0,'C': 0xB, 'V':0xF,
}[charStr];

【问题讨论】:

标签: javascript object-notation


【解决方案1】:

这和说的一样:

const idxObj = {
  '1': 0x1,'2': 0x2,'3': 0x3,'4': 0x4,
  'Q': 0x4,'W':0x5,'E': 0x6,'R': 0xD,
  'A': 0x7,'S':0x8,'D': 0x9,'F': 0xE,
  'Z': 0xA,'X':0x0,'C': 0xB, 'V':0xF,
};
idx = idxObj[charStr];

它同时创建对象和访问对象属性。

延伸阅读:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#Bracket_notation

【讨论】:

    【解决方案2】:

    基本上,您所看到的是直接在同一定义中访问对象中的属性。

    让我们用一个更简单的例子:

    const ourObjectResponse = {
        foo: 'bar'
    }['foo']
    console.log(ourObjectResponse) // 'bar'
    

    这是因为您正在做的是定义一个对象并立即从该对象中获取一个值。

    您可以将其更改为:

    const ourObject = {
        foo: 'bar'
    };
    const ourObjectResponse = ourObject['foo']
    console.log(ourObjectResponse) // 'bar'
    

    【讨论】:

      【解决方案3】:

      您可以使用方盒符号访问对象的属性。这通常在属性中有空间的情况下很有帮助。像 obj['first name']。

      【讨论】:

        猜你喜欢
        • 2017-10-27
        • 1970-01-01
        • 2015-09-08
        • 2014-10-23
        • 1970-01-01
        • 2014-03-17
        • 2013-02-25
        • 2010-11-23
        • 1970-01-01
        相关资源
        最近更新 更多