javascript - 需要解释 : Organization with Objects in a Contact List (Javascript, Codecademy)

标签 javascript

<分区>

我在理解这个 contact list project 中的两个 javascript 函数时遇到了一些问题。在 codecademy .

具体来说,我对“obj”或“prop”等条件感到困惑。 如果有人能详细解释这些功能是如何工作的,我将不胜感激。

这是代码,谢谢:

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) {
    if(friends[prop].firstName === name) {
      console.log(friends[prop]);
      return friends[prop];
    }
  }
};

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

最佳答案

obj 只是您正在创建的 list 函数的参数名称。它没有特殊意义。您可以将其命名为 fooobject,或任何您认为有意义的名称。您传递给 list 函数调用的参数值(上面,即 friends)存储在函数范围内的参数中。也就是说,objlist的代码内部运行时,本质上变成了friends

prop 类似:它只是一个作为 JavaScript 的 for...in 的一部分创建的变量句法。 for in 遍历作为 in 构造参数的对象的属性名称,并将它们一一存储在 prop 中。同样,您可以随意调用它:

var list = function (foo) {
    for (var bar in foo) {

但是,我相信您已经了解到,赋予变量名称一些意义是有意义的,因此 obj 是“object”的缩写,作为 list函数对任何一般对象进行操作,prop 是“property”的缩写。

请记住,for...in 循环遍历属性 names。要访问相应的值,您应该使用:

if (obj.hasOwnProperty(prop)) {
    //access via obj[prop];
}

search 函数实际上执行此操作,但没有推荐的 hasOwnProperty检查。

关于javascript - 需要解释 : Organization with Objects in a Contact List (Javascript, Codecademy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419458/

相关文章:

javascript - 如何检测Web中是否显示手机键盘?

javascript - 从字符串中删除字符

php - 将 Ck 编辑器放入 innerHTML 以用 Ckeditor 文本区域替换 div 后无法工作

javascript - 如何使用 JavaScript 验证多个 mcq 问题?

javascript - 为什么 CSS3Pie + Prototype 1.6.1 会导致 Internet Explorer 8 崩溃

javascript - 错误处理node.js

javascript - 在 Vuejs 中观察 window.scrollY 的变化

javascript - 使用 java 脚本在丰富的面孔页面中进行 Google Transliterate 翻译

javascript - 从动态添加的输入中获取数据

javascript - CSS/Jquery 选择框 - 所选选项不能左对齐?