javascript - 试图理解 evercookie 中的代码结构

标签 javascript function scope anonymous-function

我一直在努力理解 Samy Kamkar 的 evercookie 代码,但他至少做了一件我根本无法理解的事情。相关代码可以在线查看http://code.google.com/p/beef/source/browse/trunk/modules/beefjs/lib/evercookie.js?spec=svn604&r=604 .

我的问题是关于这段代码如何设置 evercookie 本身。相关结构:

var evercookie = (function () {
  this._class = function() { 
      ... 
  }; 
  return _class;
})();

我知道 evercookie 旨在成为一个构造函数(尽管没有遵循大写构造函数的惯例)并且我知道 evercookie 被设置为返回一个匿名的、自执行的功能。除非我比我想象的更困惑,否则 evercookie 应该设置为 _class 在外部(匿名)函数范围内的值。我遵循的是:_class 在哪里获取值? _classthis._class 不同,并且没有其他对 _class 的引用。

最佳答案

在该函数中 _classthis._class 相同,因为 this 在自动执行的函数中引用了 window 对象。它实质上是使 _class 函数成为全局变量。

基本思路如下:http://jsfiddle.net/hYQab/

关于javascript - 试图理解 evercookie 中的代码结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6269470/

相关文章:

javascript - 将功能放在另一个范围内?

javascript - 选择性页面无限滚动

javascript - jQuery如何在不检查扩展名的情况下检查上传的文件是否是图像?

python - Python 中可变参数列表的默认值

python - 在这个硬币找零问题中,我该如何做 "recursive"for 循环?

r - 是否有 R 函数用于返回向量的任何值的排序索引?

javascript - 获取 HTML 表格中的行数

javascript - AngularJS - 将对象传递给属性时动态加载模板URL

c++ - 如何从C++中的switch语句返回不同类型的变量

javascript - 如果没有选择任何选项,则禁用按钮angularJS