javascript - 如何向现有对象添加原型(prototype)属性

标签 javascript angularjs arrays object frontend

我的数组中只有几个对象,我想将一些 Prop 从工厂添加到类型为日期的对象。

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

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

但是不行,我哪里错了? Plunker example

最佳答案

更改 forEach 中的 item 不会改变该 item。您需要使用 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()

关于javascript - 如何向现有对象添加原型(prototype)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39326889/

相关文章:

javascript - 将数组中的所有对象合并为一个

javascript - Angular $http.post 不返回 XML

javascript - 父 View 上的 Angular UI 路由器动画

C++ 转换指针数组(没有数据丢失或过度使用内存)

python - 将多维数组从 perl 脚本传递到 python 脚本

arrays - Powershell 比较数组元素

JavaScript .split

javascript - jQuery promise 模拟数组上函数的同步调用

javascript - 创建一个链接到 querySelector 的函数

javascript - $scope.$apply 未在页面刷新时更新