我一直在努力理解 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
在哪里获取值? _class
与 this._class
不同,并且没有其他对 _class
的引用。
最佳答案
在该函数中 _class
与 this._class
相同,因为 this
在自动执行的函数中引用了 window 对象。它实质上是使 _class
函数成为全局变量。
基本思路如下:http://jsfiddle.net/hYQab/
关于javascript - 试图理解 evercookie 中的代码结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6269470/