小编tom*_*cdo的帖子

JavaScript对象声明语法 - 变量名称作为属性

JavaScript为您提供了许多声明对象的方法.当您手头有大部分数据时,最方便的(在我看来)如下:

var person = {
    name: 'John',
    age: 23
}; // "object literal syntax"
Run Code Online (Sandbox Code Playgroud)

关于这种语法的奇怪之处在于它与此相同:

var person = {
    'name': 'John',
    'age': 23
}; // "object literal syntax"
Run Code Online (Sandbox Code Playgroud)

也就是说,您可以使用引号或省略它们作为属性名称.

将其与设置单个属性的方式进行比较时,您有两个选择:

person.birthday = "January 12"; // "dot syntax"
Run Code Online (Sandbox Code Playgroud)

要么

person['birthday'] = "January 12"; // "array syntax"
Run Code Online (Sandbox Code Playgroud)

"点语法"仅在右操作数是实际属性名称时有效.如果要将变量用于属性名称,则必须使用"数组语法",即:

var prop = "birthday";
person[prop] = "January 12";
Run Code Online (Sandbox Code Playgroud)

现在,是否可以在"对象文字语法"中使用变量作为属性名称?因为引用属性名称并不重要,所以似乎没有一种明显的方法可以在那里使用变量.我正在寻找这样的东西:

var prop = "birthday";
var person = {
    name: 'John',
    age: 23,
    (prop): 'January 12'
};
Run Code Online (Sandbox Code Playgroud)

在这里,我使用(prop)作为用于表示这是变量而不是文字字符串的虚构语法.

谢谢.

javascript syntax object

14
推荐指数
2
解决办法
2万
查看次数

我的Android应用程序需要我没有请求的权限

我刚刚创建了一个非常简单的Android应用程序,它捕获一个Intent,稍微操纵一下,并发出一个新的Intent.我将应用程序转移到手机上adb install,现在查看应用程序的请求权限,我发现它需要我从未要求的权限:

  • 读取电话状态和身份
  • 修改或删除USB存储器的内容
  • 测试对受保护存储的访问

我的清单文件中没有任何内容请求权限,而应用程序本身也很简单(这里是GitHub上的源代码).是否添加了这些额外的权限,因为我安装了它adb install,或许?或者我的应用程序中有什么值得要求这些权限,我只是没有看到?

android android-permissions

1
推荐指数
1
解决办法
297
查看次数