新对象创建问题

New Object Creation issues

本文关键字:创建 问题 对象 新对象      更新时间:2023-09-26

好的,所以下面的函数充当构造函数来创建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);

在下面:

> var emp1 = newEmployee;

左侧的变量将被分配计算右侧表达式的结果。没有标识符newEmployee,因此您将收到错误。你可能想写的是:

var emp1 = new Employee();

这将调用构造函数,构造函数将返回一个新实例,该实例的引用将分配给 emp1

然后你有:

>  this.Name = 'jo';

值是在输入执行上下文时设置的。对于全局代码,它始终引用全局对象(相当于浏览器中的窗口)。因此,上面的行创建了全局对象的 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);

等等。

你的代码示例有很多问题。构造函数拼写错误。应按如下方式创建员工实例:

var emp1 = 新员工();

实例属性应设置为:

emp1.setName('John');

你还把两个二传手合二为一,这很令人困惑。

要访问实例属性,应使用:

emp1.getName();

不:

Employee.Name

是的,你有很多错误,我认为这基本上是你想要实现的。

  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());

}

http://jsfiddle.net/umNTs/