关于javascript:变量在另一个块中也可见

A variable is visible in another block as well

本问题已经有最佳答案,请猛点这里访问。

我有这个代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function ready() {
  $("#my_form").on("submit", function (e) {
    for (var j in someItems) {
      var element = $(someItems[j]);
      $("<input>").attr({type:"hidden", name: element.attr("name"), value: element.val()}).appendTo($(this));
    }

    for (var i = 0; i < someItems2.length; i++) {
      //"element" is visible here ??????
      $("<input>").attr({type:"hidden", name: element.attr("name"), value: element.val()}).appendTo($(this));
    }
  });
});

jQuery(document).ready(ready);
jQuery(document).on("page:load", ready);

为什么变量element在第二个循环中可见?


因为变量在JavaScript中没有block范围,但是functional scope

请参阅这篇文章。