Javascript 理解对象

Javascript 理解对象,javascript,object,Javascript,Object,所以当我学习Javascript时,我确实打算问很多问题 通常我理解变量赋值是如何工作的,但这段代码有点让人困惑,为什么obj[b]=“helloworld” var obj={ 答:“你好,世界”, b:42 }; var b=“a”; obj[b];//“你好世界”

所以当我学习Javascript时,我确实打算问很多问题

通常我理解变量赋值是如何工作的,但这段代码有点让人困惑,为什么obj[b]=“helloworld”

var obj={
答:“你好,世界”,
b:42
}; 
var b=“a”;
obj[b];//“你好世界”<为什么这是你好世界?
obj[“b”];//42

obj[b]
相当于
obj['a']
,因为您为变量
b
分配了
'a'


在JavaScript中,您可以使用如上所述的括号符号(Andrew提到)或使用点符号
obj访问对象属性,例如数组。a
obj[b]
相当于
obj['a']
,因为您为变量
b
分配了
'a'
的值

var obj = {
  a: "hello world", 
  b: 42
}; 

var b = "a" ; // this creates a new variable with string value "a"

obj[b]; // this references the object property having the string value of 
        // variable b, which is "a"

在JavaScript中,您可以使用如上所述的括号表示法(Andrew提到)或使用点表示法访问对象属性,如数组。a

[]表示法允许动态访问对象中的属性/方法

var obj = {
  a: "hello world", 
  b: 42
}; 

var b = "a" ; // this creates a new variable with string value "a"

obj[b]; // this references the object property having the string value of 
        // variable b, which is "a"
假设你有这样的辞典:

var dict = {
  foo : "bar",
  hello : "world"
};

function access(obj, property){
  return obj[property];
};

console.log(access(dict, "hello"));//world

使用点表示法无法做到这一点。

[]表示法允许动态访问对象中的属性/方法

假设你有这样的辞典:

var dict = {
  foo : "bar",
  hello : "world"
};

function access(obj, property){
  return obj[property];
};

console.log(access(dict, "hello"));//world

你不能用点表示法这样做。

因为你正在访问
a
属性…?因为你正在访问
a
属性…?我明白了,这很有趣,谢谢。它如何知道b=“a”;可能是指物体内部的一个物体,或者它不重要?。这是一个很酷的trickObject键被引用为字符串(带引号)或变量(不带引号)。它如何知道b=“a”;可能是指物体内部的一个物体,或者它不重要?。这是一个很酷的trickObject键被引用为字符串(带引号)或变量(不带引号)。