需要说明:联系人列表中对象的组织(Javascript, Codecademy)
Need Explanation: Organization with Objects in a Contact List (Javascript, Codecademy)
我在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
函数的参数名称。它没有特别的含义。你可以叫它foo
或者object
,或者任何你觉得有意义的东西。传递给list函数调用的实参的值(即friends
)存储在函数作用域中的形参中。也就是说,obj
在list
的代码内运行,实质上变成了friends
。
prop
是类似的:它只是一个变量,创建作为JavaScript的for...in
语法的一部分。for in
循环遍历作为in
构造参数的对象的属性名,并将它们逐个存储在prop
中。同样,你可以给它取任何你想要的名字:
var list = function (foo) {
for (var bar in foo) {
然而,我相信你已经学会了,给变量名一些含义是有意义的,所以obj
是"对象"的缩写,因为list
函数对任何一般对象进行操作,prop
是"属性"的缩写。"
请记住,for...in
循环遍历属性名称。要访问相应的值,您应该使用:
if (obj.hasOwnProperty(prop)) {
//access via obj[prop];
}
search
函数实际上执行此操作,但没有推荐的hasOwnProperty
检查。
obj是list
函数传递的参数。For遍历该对象的名称。例如:
var a = {x:5}
for(var prop in a){
//here prop will be 'x' and a[prop] will be 5 (a['x'] is 5)
//same goes again for objects that have multiple properties
}
在你的例子中:
var list = function(obj) {
for(var prop in obj) {
console.log(prop); // here will be logged Bill and Steve, because they are properties of friends -object
}
};
相关文章:
- http://oauth.googlecode.com/svn/code/javascript/oauth.js已关闭,
- 将angular javascript文件包装为“;(function(){..[js-code here]…})()&
- Javascript code to struts2
- Javascript 计时器只调用一次 Code 隐藏方法
- 将 2D 数组从 Code Behind 传递给 JavaScript
- Joomla javascript var with HTML code
- Missing ) with JavaScript Code
- Dynamic about: URLs using JavaScript Code Modules (XPCOMUtil
- Uglify JavaScript code with Sprockets
- Javascript code to apache velocity
- 如何使用 RubyMine 4.0 的“content_for”帮助程序启用 JavaScript Code 格式化程序
- 如何从 JavaScript Code Module 上下文中使用 FormData
- PhoneGap Ready and Javascript code
- Making Rails javascript code DRY
- javascript code to php?
- Javascript code
- javascript code and zindex
- Instagram Javascript code
- javascript code for @
- jQuery to JavaScript code