创建人员 - 设置和更改名字和姓氏

时间:2015-07-31 14:28:22

标签: javascript function object

我正在尝试通过首先接收全名并使用方法设置第一个,最后一个和全名来构建一个创建人的功能。之后,它将拥有应该能够更改名称的每个部分的方法。

我目前的代码如下:

var Person = function(firstAndLast) {

  var name = firstAndLast;

  this.getFirstName = function() { 
    return name.substr(0,name.indexOf(' '));
  };

  this.getLastName = function() { 
    return name.substr(name.indexOf(' ')+1);
  };

  this.getFullName = function() {
    return name;
  };

  this.setFirstName = function() { 
    return name;
  };

  this.setLastName = function() { 
    return name;
  };

  this.setFullName = function() {
    return name;
  };

};

var bob = new Person('Bob Ross');
bob.setFullName();

现在,当我有时间传递一个新名字时,我完全陷入困境,所以如果我做了类似的话:

bob.setFullName(' George Carlin');

然后传递:

bob.getFullName();

我应该得到答案' George Carlin'

然而这并没有发生。

一如既往地谢谢。

1 个答案:

答案 0 :(得分:0)

所以问题在于我并没有真正理解传递的值是怎样的,并且我不应该使用全名来处理部件。

var Person = function(firstAndLast) {

var firstName = firstAndLast.split(' ')[0];
var lastName = firstAndLast.split(' ')[1];

this.setFirstName = function(firstNameNew) { 
  firstName = firstNameNew;
};

this.setLastName = function(lastNameNew) { 
  lastName = lastNameNew;
};

this.setFullName = function (fullNameNew) {
  firstName = fullNameNew.split(' ')[0];
  lastName = fullNameNew.split(' ')[1]; 
};

this.getFullName = function() {
  return firstName + ' ' + lastName;
};

this.getFirstName = function() { 
return firstName;
};

this.getLastName = function() { 
return lastName;
};


};

var bob = new Person('Bob Ross');