第一关:对象的创建
任务描述
使用对象字面量方法创建名为student的对象,有两个属性name和gender,他们的值分别是mainJs()函数的参数a和参数b;
使用已给的构造函数Car(plate,owner)创建一个对象myCar,它的两个属性的值分别是参数c和参数d;
使用原型创建一个对象myJob,它的构造函数是Job(company,salary),它的两个属性的值已经被设置,你需要用参数e覆盖属性company的值。
编程内容
function Car(plate,owner) {
this.plate = plate;
this.owner = owner;
}
function Job() {};
Job.prototype.company = "myCompany";
Job.prototype.salary = 12000;
function mainJs(a,b,c,d,e) {
//请在此处编写代码
/*********bigin*********/
var student = new Object();
student.name = a;
student.gender = b;
var myCar = new Car(c,d);
var myJob = new Job();
myJob.company = e;
/*********end*********/
return student.name+student.gender+myCar.plate+myCar.owner+myJob.company;
}
第二关:属性的增删改查
任务描述
请补全右侧代码片段,使函数reviseAttribute(reviser,date,attvalue) 具备根据传入参数修改store对象的属性的功能,具体要求如下:
如果调用函数reviseAttribute(reviser,date,attvalue)并传入值 Alice,1,1000那么对应store的day1属性的值就修改为1000,accountant属性的值修改为Alice。
编程内容
var store = {
name:"Luma Restaurant",
location:"No 22,Cot Road",
accountant:"Vivian Xie",
day1:3200,
day2:3200,
day3:3200,
day4:3200,
day5:3200,
day6:3200,
day7:3200,
day8:3200,
day9:3200,
day10:3200
}
function reviseAttribute(reviser,date,attValue) {
//Convert string to integer
attValue = parseInt(attValue);
//请在此处编写代码
/*********begin*********/
store.accountant = reviser;
var ds = "day" + date;
store[ds] = attValue;
/*********end*********/
var totalSales = store["day1"]+store["day2"]+store["day3"]+store["day4"]+store["day5"]+store["day6"]+store["day7"]+store["day8"]+store["day9"]+store["day10"];
return totalSales+store.accountant;
}
第三关:属性的检测和枚举
任务描述
有两个可选的对象orange和car,判断给定的属性名a属于哪一个对象;
返回该对象的所有自有属性名组成的字符串,例如:如果判断为car,则返回brandpricemodel;
给定的两个对象的自有属性都是可枚举的。
编程内容
var orange = {
weight:"200g",
color:"orange",
taste:"sour"
};
var car = {
brand:"Jaguar",
price:"$80000",
model:"XFL"
}
function mainJs(a){
//请在此处编写代码
/*********begin*********/
var b = "";
if(a in orange){
for(var att in orange){
b = b.concat(att);
}
}
else if(a in car){
for(var att in car){
b = b.concat(att);
}
}
return b;
/*********end*********/
}