小编Mar*_*ing的帖子

jQuery - 移动到window.function的函数

我创建了一个新的全局对象,然后将所有内容放入该新对象中,这样它就不会干扰其他任何人做的事情.在调用document.ready()函数之后,由于未知原因,这会被移动到window.bf.我把它简化为一个简单的例子.任何人对正在发生的事情都有任何想法?

<html>

<head>
  <title>Test</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script>
    debugger;
    var bf = {}; //	Namespace

    bf.vars = [];
    bf.vars['onclick'] = "";

    $(document).ready(function() {

      bf.noop = function() {}

      bf.noop();
      window.bf.noop();

    });
  </script>
</head>

<body>Test</body>

</html>
Run Code Online (Sandbox Code Playgroud)

所以我结束了两个"男朋友".一个是原始全局对象,第二个是window.bf对象.我的问题是:最初,全局对象中包含所有函数和变量.现在全局变量除了bf.vars(一个数组)之外什么都没有.其他所有内容现在都在window.bf对象中(包括应该进入全局bf.vars数组的所有内容,但我从未要求这样做.)

直到上周五(2015年9月25日),这都没有发生.现在确实如此.

更新:我刚刚尝试删除document.ready()函数.如果删除document.ready()部分 - 则全局bf对象将返回为全局变量.所以这似乎与jQuery本身有关.

在有人问之前:使用document.ready()的原因是因为我定义的一些函数引用了需要加载的位置,jQuery说要使用document.ready()函数来确保所有元素在执行开始之前已加载.bf.noop()函数只是给出一个函数的例子,并显示该函数不再显示在全局bf对象中.

使用document.ready()进行屏幕截图:

在此输入图像描述

没有document.ready()的屏幕截图:

在此输入图像描述

更好?

javascript jquery

2
推荐指数
1
解决办法
105
查看次数

标签 统计

javascript ×1

jquery ×1