如何将prototype属性添加到现有对象

时间:2016-09-05 08:48:52

标签: javascript angularjs arrays object frontend

我在数组中有几个对象,我想从工厂添加一些类型为date的对象。

我不需要从此对象中删除旧值。我试着这样做:

  angular.forEach($scope.things, function(item) {
    if(item.type === 'date') {
      item = DateFactory.prototype.createFactory();
    }
  })

但它不起作用,我错了?  Plunker example

2 个答案:

答案 0 :(得分:3)

更改item中的forEach不会改变该项目。您需要使用obj[key]代替:

angular.forEach($scope.things, function(item, key, obj) {
    if(item.type === 'date') {
      obj[key] = DateFactory.prototype.createFactory();
    }
  })

更新了plunker

此外,您应该从工厂返回日期对象的实例:

return new date();

..然后只需调用方法:

obj[key] = DateFactory.createFactory()

答案 1 :(得分:1)

用于链接原型使用语法: -

item = Object.create(Date);