函数提升问题和jQuery源码

$(document).ready(function () {

var a ={};
console.log(a);
$.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),
function (i,name) {
    a["object"+name]=name.toLocaleLowerCase();
})

})
我用的是jQuery请问为什么打印出如下结果

clipboard.png
$.each为什么会先执行?
还请各位大佬指点

这个是我从jQuery 2.2.4源码中看见的
在 311行 和 524行 如下

clipboard.png

clipboard.png

为什么jQuery.each会在type后,但下断点,在318行确又有值 如下

clipboard.png

阅读 2.2k
3 个回答

你打出来的是个引用类型的变量,所以控制台打出来的会是你都执行过后的结果
你可以在console.log后面加一个debugger,然后你就看到打出来是你想要的空对象
并不是$.each先执行了

新手上路,请多包涵

类似于此,初始化过了
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题