请问问题出在哪里
来源: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哦,所以这里使用[]的方式进行设置。
自己修改测试下,祝学习愉快!
欢迎采纳~
相似问题