Javascript 敲除映射导致原型对象上的覆盖

Javascript 敲除映射导致原型对象上的覆盖,javascript,knockout.js,Javascript,Knockout.js,这个问题让我头疼 基本上,我有以下viewModel,它有一个派生类: define(['./AViewModel'],function (aViewModel) { var newModel= function () { var self = this; this.Name = ko.observable().extend({ required: true }); }); }; newModel.protot

这个问题让我头疼

基本上,我有以下viewModel,它有一个派生类:

define(['./AViewModel'],function (aViewModel) {
    var newModel= function () {
        var self = this;
        this.Name = ko.observable().extend({ required: true });      
        });
    };

    newModel.prototype = Object.create(new baseViewModel);
    newModel.prototype.constructor = newModel;

    return newModel;
});
然后我在函数中执行以下操作

 var mappedData = [];
 ko.utils.arrayForEach(data, function (item) {
      var result = aFactory.create("newModel");
      var resultList = ko.mapping.fromJS(item, {}, result);
      mappedData.push(resultList);
});
 return tasks(mappedData);
但是,每次将baseViewModel添加到数组时都会写入。新型号还可以

您知道是什么导致了这种情况吗?因为在向数组中添加时,派生类型的映射似乎无法正常工作


干杯

我不确定问题出在哪里,它正在按照我的预期工作。你能把你的问题改写一下吗?或者再举一个更完整的例子?你说的“baseViewModel每次添加到数组时都会被写入”是什么意思?它不应该这样做吗?嗨,当新模型是新的时,它也会添加baseViewModel。但是当我们使用敲除映射时,它会用当前的baseViewModel数据覆盖数组中的所有元素。例如,在第一个循环中,baseViewModel的参考是ab12。在第二个liip上,baseVIewModel的参考是ab13,但该对象在阵列对象中的所有baseViewmodels上都被覆盖。原型似乎有一个集合实例,可以作为函数指针使用。您可以创建一个JSFIDLE来演示这个问题吗。在aFactory.create中发生了什么,该代码似乎就是您的问题所在