JavaScript - 更新/重新初始化对象

时间:2017-05-24 07:45:21

标签: javascript oop javascript-objects

我有一个“Product”对象,其值依赖于彼此:

function Product(object) {
  this.object = object;
  this.data = {
    id: this.object.val(),
  }
}

var product = new Product($('input[name="productId"]:checked'));

而且......它正在发挥作用。但是,我想在输入变化上重新初始化整个对象,因为我在这里得到的很少:

 <input type="radio" name="productId" value="ONE" checked="checked" />
 <input type="radio" name="productId" value="TWO" />

我可以在更改事件上手动设置新值:

$(function () {
  $('input[name="productId"]').change(function(e) {
    e.preventDefault();
    product.object = $('input[name="productId"]:checked');
  });
});

但它只会改变'对象'值而不会影响其中的其他值。

我当然可以在变更事件上手动设置每个新值​​,但似乎不对,是吗?每次我想要更新时我都不想重复自己,我只是想重新生成那个对象。

现在我在Product对象中有一个公共函数的解决方法,然后在change事件上调用它。

 this.updateData = function() {
   this.data.id = this.object.val();
 }

但同样,它只是重复每个声明,它会变得非常混乱,因为会出现更多的对象属性而不仅仅是'id'。

1 个答案:

答案 0 :(得分:1)

您想要更改对象的每个属性吗?如果是这种情况,那么为什么不创建新对象来代替旧对象呢?

PM>Install-Package MongoDB.Driver

但如果你想出于某种原因保留对象,你可以这样做:

$(function () {
  $('input[name="productId"]').change(function(e) {
    e.preventDefault();
    product = new Product($('input[name="productId"]:checked'));
  });
});