我一直在Javascript中使用方括号表示法来创建和调用关联数组.
在这个例子中,我理解方括号表示法允许您使用变量来调用数组中的某个对象.
你会用点符号做这样的事情吗?
var item = {};
item['1'] = 'pen';
var x = 1;
console.log(item[x]); // console will show 'pen'
Run Code Online (Sandbox Code Playgroud)
nnn*_*nnn 29
不能使用以点表示的变量(使用短的eval,你不希望这样做).使用点表示法,属性名称基本上是常量.
myObj.propName
// is equivalent to
myObj["propName"]
Run Code Online (Sandbox Code Playgroud)
简短的回答是:除非您知道该属性的名称,否则无法使用点表示法访问该属性.
点表示法还对您可以访问的属性名称设置限制,因为属性名称必须是有效的JavaScript标识符.例如,如果您有一个名为my prop(或更好my%prop)的属性,那么在不使用括号表示法的情况下将无法访问它,因为在大多数情况下会导致语法错误.
作为旁白:
能够使用点表示法动态查找属性会不会有点混乱?
item.x // is this the property "x" or do I have to look up variable "x"?
Run Code Online (Sandbox Code Playgroud)
如果使用数字访问数组,则必须使用括号:
item[0]
var k = 0;
item[k]
Run Code Online (Sandbox Code Playgroud)
如
item.0
Run Code Online (Sandbox Code Playgroud)
不起作用(语法错误).
如果你使用字符串
item["key"]
var p = "key";
item[p]
Run Code Online (Sandbox Code Playgroud)
等于
item.key
Run Code Online (Sandbox Code Playgroud)
在后一种情况下
var p = "key";
item.p
Run Code Online (Sandbox Code Playgroud)
会导致错误的输出,因为p这里没有被视为变量.
| 归档时间: |
|
| 查看次数: |
25166 次 |
| 最近记录: |