为何打印的是未定义?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>方法的调用</title> </head> <body> <script type="text/javascript"> // 在此处完成任务 var person={ setPerson:function (per,val){ this.per=val; }, }; person.setPerson(name,"xm"); console.log(person.name); </script> </body> </html>
为何打印的是未定义?
31
收起
正在回答
3回答
传实参的时候要这样哦,否则name会被当做没有赋值的变量传入
红星双子
2017-11-19 15:10:15
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>方法的调用</title> </head> <body> <script type="text/javascript"> // 在此处完成任务 var person={ setPerson:function (per,val){ this[per]=val;//这里用中括号而不用“.”是因为per相当于该方法中的一个变量,如果用“.”来调用,解析器会误以为per就是属性名本身。 }, }; person.setPerson(name,"xm");//这里定义了一个键值对 console.log(person[name]);//上面已经定义了name属性,为何这里还要用中括号呢?如果用“.”就会提示未定义 </script> </body> </html>
问题解决了,不过还是不明白???????
相似问题
登录后可查看更多问答,登录/注册
HTML5与CSS3实现动态网页 2018
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星