好的,以下函数充当构造函数来创建一个Employee对象(没问题)。但是,当我使用这个功能创建3个新员工时,我在某处弄乱了。
我知道我应该设置属性并打印员工的姓名和电话号码,但我遗漏了某些东西或某些东西在错误的地方。
提前感谢您的帮助。
function Employe() {
var = name;
var = phone;
this.getName = function () {
return this.name;
}
this.setName = function (name, phone) {
this.name = name;
this.phone = phone;
};
}
var emp1 = newEmployee;
this.Name = 'jo';
this.Phone = ' 555-5551'
document.write(Employee.name Employee.phone);
var emp2 = newEmployee;
this.Name = 'jim';
this.Phone = '555-5552';
document.write(Employee.name Employee.phone);
var emp3 = newEmployee;
this.Name = 'jon';
this.Phone = '555-5553';
document.write(Employee.name Employee.phone);
答案 0 :(得分:0)
以下内容:
> var emp1 = newEmployee;
左侧的变量将被赋予评估右侧表达式的结果。没有标识符newEmployee
,因此您将收到错误消息。你可能想写的是:
var emp1 = new Employee();
这将调用构造函数,构造函数将返回一个新实例,其引用将分配给 emp1 。
然后你有:
> this.Name = 'jo';
输入执行上下文时设置 this 的值。对于全局代码,它始终引用全局对象(相当于浏览器中的 window )。因此,上面的行创建了全局对象的 Name 属性,并赋值'jo';
你想要的可能是:
emp1.setName('jo','555-5551');
该方法的名称似乎不合适,因为它设置了姓名和电话号码。
> document.write(Employee.name Employee.phone);
由于您已将属性添加到实例(emp1),因此可能是您要阅读的属性:
document.write(emp1.name + ' ' + emp1.phone);
或使用 getName 方法:
document.write(emp1.getName() + ' ' + emp1.phone);
等等。
答案 1 :(得分:0)
您的代码示例存在很多问题。构造函数拼写错误。应该创建员工实例,如:
var emp1 = new Employee();
实例属性应设置为:
emp1.setName( '约翰');
你还将两个二人组合成一个,这令人困惑。
要访问实例属性,您应该使用:
emp1.getName();
不
Employee.Name
答案 2 :(得分:0)
是的,你有很多错误,我认为这基本上就是你想要实现的目标。
function Employee(){
this.name;
this.phone;
this.getName = function(){
return this.name;
};
this.setName = function(name, phone){
this.name = name;
this.phone = phone;
};
}
function employ(){
var emp1 = new Employee();
emp1.name = 'jo';
emp1.phone = ' 555-5551' ;
alert(emp1.getName());
}