我开始阅读JavaScript模式,一些代码让我困惑.
var global = (function () {
return this || (1, eval)('this');
}());
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
Q1:
(1, eval) === eval?
为什么以及如何运作?
Q2:为什么不呢
var global = (function () {
return this || eval('this');
}());
Run Code Online (Sandbox Code Playgroud)
要么
var global = (function () {
return this;
}());
Run Code Online (Sandbox Code Playgroud) 查看doT.js源代码:
https://raw.github.com/olado/doT/master/doT.js
这是做什么的?
(function(){ return this || (0,eval)('this'); }()).doT = doT;
Run Code Online (Sandbox Code Playgroud)
对我来说,看起来它正在创建一个全局变量,window.doT.如果这就是它的全部,那么为什么不呢:
window.doT = doT;
Run Code Online (Sandbox Code Playgroud)
?