请问问题出在哪里
来源:5-7 编程练习
蛤小蛤
2019-11-04 18:11:33
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8" /> <title>方法的调用</title> </head> <body> <script type="text/javascript"> // 在此处完成任务 /* 5-7 编程练习 小伙伴们,请用程序描述下列内容: 给一个人(person)通过方法(setPerson)添加属性(name: 'xm', age: 18, sex: 'male')。 该方法接收property和value 2个参数 任务 1. 先定义person对象。 2. 对象内,通过定义setPerson方法,用于添加相应属性(name: 'xm', age: 18, sex: 'male')。 setPerson方法有两个参数property和value,用于接收相应属性及值。 setPerson方法内实现相应属性与值的赋值。 3. 最后通过person.setPerson方法给对象添加以下属性。(name: 'xm', age: 18, sex: 'male') */ var person = {}; person.setPerson = function(property, value) { if (property == name) { this.name = value; } else if (property == age) { this.age = value; } else { this.sex = value; } }; person.setPerson(name, "xm"); person.setPerson(age, 18); // person.setPerson(sex, "male"); console.log(person); </script> </body> </html>
1回答
同学你好,name和age是变量,没有定义使用就会报错。但是name比较特殊,window对象中有这个属性,可以直接使用,没有age属性,使用就会报错。
代码中不需要判断,直接设置属性就好,如下修改:
结果:
需要注意的是,当属性名为变量的时候,不能用点的方式进行设置,会直接将变量当做属性。例如:
变量a作为了属性,而不是变量a的值age哦,所以这里使用[]的方式进行设置。
自己修改测试下,祝学习愉快!
欢迎采纳~
相似问题