当前位置: 首页 > 知识库问答 >
问题:

使用句点访问对象的属性,但未定义

闻人修平
2023-03-14

我正在做codecadiy的javascript教程,遇到的问题如下:

var friends = {};
friends.bill = {
  firstName: "Bill",
  lastName: "Gates",
  number: "(206) 555-5555",
  address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
  firstName: "Steve",
  lastName: "Jobs",
  number: "(408) 555-5555",
  address: ['1 Infinite Loop','Cupertino','CA','95014']
};
var list = function(obj){
    for(var prop in obj){
        console.log(prop);
    }
};
var search = function(name) {
  for(var prop in friends){ 
        console.log(prop);
        console.log(friends.prop);//friends[prop] will print out 

  }


};
list(friends);
search("Steve");

console.log(friends.prop)将打印出未定义的,但如果我将其更改为

朋友[prop],它将打印账单和史蒂夫对象信息。

我看到w3c教程说有两种访问方法是正确的,我无法理解

到底是什么问题?

谢谢提前。

共有1个答案

江恩
2023-03-14

数组表示法([prop])提供了一种额外的间接级别,一种反射类型。

所以,朋友。比尔和朋友[“比尔”]是一样的。但是,如果你想做一些像var-prop='bill',那么使用它的唯一方法就是作为friends[prop]

如果你尝试朋友。prop,您实际上是要求它查找一个名为“prop”的朋友。

 类似资料:
  • 问题内容: 首先看下面的JavaScript对象 我想将值设置为与相同,因此我将对象值放在前面,但它对我不起作用,我也使用过,但仍然失败。我的问题是如何访问对象内对象的属性。 一些用户沉迷于问“您想做什么或发送脚本等”,对于那些人来说,答案很简单:“我想访问对象内的对象属性”,上面提到了脚本。 任何帮助将不胜感激 :) 问题答案: 使用 对象文字 语法时,不能在初始化期间引用对象。创建对象后,需要

  • 本文向大家介绍浅谈JS使用[ ]来访问对象属性,包括了浅谈JS使用[ ]来访问对象属性的使用技巧和注意事项,需要的朋友参考一下 对象的属性由两种固定的方法来访问:”.”记法和”[ ]“方括号记法: 使用”.”号记法访问标准的对象属性,使用”[ ]“方括号记法访问由页面定义的对象属性。如下 document.forms["myformname"].elements["myinput"].value

  • 我正在尝试使用动态名称访问对象的属性。这可能吗?

  • 我有一个微不足道的问题,但由于某种原因我无法解决。 我有一个对象,它是来自API的返回请求: 和: 第一部分是在react组件之前首先出现的内容。我能够获取一个对象,然后创建一个返回另一个对象的变量(const),在本例中: 对于我的无知,奇怪的部分是,如果我试图以这种方式访问第一个值(feels_like): 它将抛出一个错误,即无法读取未定义的属性feels_like。 现在,我试图循环遍历对

  • 问题内容: 检查JavaScript中的对象属性是否为最佳方法是什么? 问题答案: 检查属性值是否为特殊值的通常方法是: 要检查对象是否实际上没有这样的属性,并因此在尝试访问它时默认情况下将返回: 检查与标识符关联的值是否为特殊值, 或者 尚未声明该标识符。注意:此方法是引用 未声明的标识符(注意:与的值不同)的唯一方法,且不会出现早期错误: 在ECMAScript 5之前的JavaScript版

  • 问题内容: 我正在尝试使用动态名称访问对象的属性。这可能吗? 问题答案: 有两种方法可以访问对象的属性: 点表示法: 括号符号: 方括号之间的值可以是任何表达式。因此,如果属性名称存储在变量中,则必须使用方括号表示法: