为什么在函数中每次更改后都会存储多个对象?

时间:2017-03-08 06:41:50

标签: javascript jquery json object

以此为例:

$('select#submit_model').on('change', function(){

   model_object = {};
   console.log(model_object);

});

为什么每次我的选择更改并且函数触发时,控制台都会记录一个额外的对象?

例如,在第一次选择后记录Object {},在第二次选择后记录Object {} Object {},在第三个Object {} Object {} Object {}之后 - 依此类推。

我想知道这是因为我有条件选择输入和数据填充依赖于用户选择的内容,但在每个“更改”功能之后,在我的对象之前添加一个空数组(类似问题) - 然后我的函数可以在进一步“on change events”之后中断,因为它正在尝试读取一个对象,但它前面有空数组(我可以看到记录到控制台)。

我是否需要以某种方式清洁或清理我的物体?为什么会这样?

感谢您的回答。

1 个答案:

答案 0 :(得分:2)

我确信除了您展示的内容之外,您在on()内还有更多代码。

你必须纠正你的问题如下: -

var model_object = {};
$('select#submit_model').on('change', function(){

   //do your stuff with model_object

   console.log(model_object);

});

<强> 实施例: -

var model_object = {};
$('select#submit_model').on('change', function(){
   model_object['selected_value'] = $(this).val();
   console.log(model_object);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="submit_model">
  <option>one</option>
  <option>two</option>
  <option>three</option>
</select>

注意: - 在您的代码中,每次更改选择框值时都会创建新实例(对象)。