如何为构造函数/原型函数添加值?

时间:2015-10-22 20:55:37

标签: javascript arrays constructor prototype

假设我有一个看起来像这样的构造函数

function Persons(lastName) {
this.lastName = lastName;
this.firstName = [];
}

然后像这样的原型

Persons.prototype.getFirstName = function() {
getName();
return firstName;
}

getName函数

var getName = function() {
}

如果我在getName中想要将值“Andrew”发送到数组this.firstName = [];我怎样才能做到这一点?它甚至可能吗?

3 个答案:

答案 0 :(得分:1)

您可以将数组传递给函数并将其填充到那里:

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

var getName = function(arr) {
  arr.push("Andrew");
}

或者您可以从函数返回值并在方法中设置它:

Persons.prototype.getFirstName = function() {
  this.firstName.push(getName());
  return this.firstName;
}

var getName = function() {
  return "Andrew";
}

答案 1 :(得分:0)

是可能的,如下:

var getName = function(person) {
    person.firtName.push("Andrew");
};

然后在prototype

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

但它并不好看。这似乎是一种不好的做法。无论如何,希望这有帮助。

答案 2 :(得分:0)

您可以使用call的方法Function,如下所示:

Persons.prototype.getFirstName = function() {
    getName.call(this);
}

这样您可以将this引用绑定到getName函数,因此您可以安全地访问它,如下所示:

var getName = function() {
    this.firstName.push("Andrew");
}

Here您可以找到有关call

的更多详细信息