在数组中分配构造函数对象的最佳方法

时间:2015-07-07 21:58:41

标签: javascript arrays constructor coding-style

我从服务器收到一个对象数组:

[{name: 'Al'}, {name: 'Ann'}]

我想将它们转换为我创建的 Person 构造函数。现在我这样做:

  function Person(attributes) {
    angular.extend(this, attributes);
    return this;
  }

  Person.prototype.getName = function() {
    return "My name is " + this.name;
  }

  $scope.people = [];

  $http.get('people')
  .success(function(people) {
    $scope.people = people.map(function(person, i) {
      return new Person(person);
    });
  });

有人能想到更好的方法吗?一个不需要将我的数组中的每个对象转换为所需的构造函数?也许是一种告诉我的数组,其中的所有对象始终是Person的实例的方法。或者我可以将getName方法包含在$ scope.people数组中,并以某种方式让其中的对象调用位于其父数组中的方法...

此外,如果有一种方法可以将对象转换为构造函数(以及它的原型方法)而不使用angular.extend,就像我在我的示例中所做的那样。感谢。

0 个答案:

没有答案