JS中点语法和方括号语法访问属性的区别

    var person = new Object();
    person.name = "Nike"; 
    var thisname = "name";
    console.log(person.name); //打印Nike
    console.log(person["name"]);  //打印Nike
    console.log(person[thisname]);  //打印Nike
    console.log(thisname); //打印name

第六行代码console.log(person[thisname])为什么打印出Nike?跟第三行var thisname = "name"有关吗?
如果有关的话,第三行的"name"是不是应该是属性?
那最后一行代码打印结果来看,第三行的"name"应该是字符串才对啊。。。

晕了已经,哪里出问题了?谢谢各位

阅读 8.3k
2 个回答

对象的属性名称就是以字符串来保存的。

person.name = "Nike" => 为person定义了一个名为name的属性,name本身是以字符串的形式保存的。

Object.keys(person)验证,结果是["name"],说明name属性确实是以字符串来保存的。所以用person[thisname]能够访问到

当对象名称为变量时,必须使用中括号才能访问

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题