我开始阅读JavaScript模式,一些代码使我感到困惑。
var global = (function () {
return this || (1, eval)('this');
}());
这是我的问题:
Q1:
(1, eval) === eval
?
为什么以及如何运作?
Q2:为什么不只是
var global = (function () {
return this || eval('this');
}());
要么
var global = (function () {
return this;
}());
(1,eval)
与plain old 之间的区别在于,eval
前者是一个 值 ,后者是一个左值。如果它是其他一些标识符,则将更加明显:
var x;
x = 1;
(1, x) = 1; // syntax error, of course!
那是(1,eval)
一个产生eval
(只是说(true && eval)
或(0 ? 0 : eval)
会)的表达式,但不是对的引用eval
。
你为什么在乎?
好了,规范了Ecma认为一个 参考 ,以eval
成为一个“直接的eval通话”,但只是产生一个表达式eval
是一间接一-
和间接的eval调用保证了在全球范围内执行。
我仍然不知道的事情:
this
全局范围内的函数 不能 产生全局对象?一些更多的信息可以在这里获得。
编辑
显然,我第一个问题的答案是“几乎总是”。直接eval
从 当前 范围执行。考虑以下代码:
var x = 'outer';
(function() {
var x = 'inner';
eval('console.log("direct call: " + x)');
(1,eval)('console.log("indirect call: " + x)');
})();
毫不奇怪(heh-heh),它打印出来:
direct call: inner
indirect call: outer
编辑
经过更多实验后,我将暂时说this
不能设置为null
或undefined
。可以将其设置为其他伪造的值(0,’‘,NaN,false),但只能非常故意。
我要说的是您的来源正在遭受轻度且可逆的颅直肠反转,并且可能要考虑花一周的时间在Haskell进行编程。
本文向大家介绍this,this,再次讨论javascript中的this,超全面(经典),包括了this,this,再次讨论javascript中的this,超全面(经典)的使用技巧和注意事项,需要的朋友参考一下 JavaScript 是一种脚本语言,因此被很多人认为是简单易学的。然而情况恰恰相反,JavaScript 支持函数式编程、闭包、基于原型的继承等高级功能。本文仅采撷其中的一例:Jav
问题内容: 我目前正在研究jQuery 对于以下两个示例: 请注意,在第一个示例中,我们用于在每个元素内附加一些文本。在第二个示例中,我们在重置表单时直接使用。 似乎比经常使用。 我的猜测是,在第一个示例中,是将每个元素转换为可以理解功能的jQuery对象,而在第二个示例中,可以直接在表单上调用它。 基本上,我们需要特殊的仅jQuery功能。 这个对吗? 问题答案: 是的,只有在使用jQuery
介绍 在这篇文章里,我们将讨论跟执行上下文直接相关的更多细节。讨论的主题就是this关键字。实践证明,这个主题很难,在不同执行上下文中this的确定经常会发生问题。 许多程序员习惯的认为,在程序语言中,this关键字与面向对象程序开发紧密相关,其完全指向由构造器新创建的对象。在ECMAScript规范中也是这样实现的,但正如我们将看到那样,在ECMAScript中,this并不限于只用来指向新创建
本文向大家介绍JavaScript中this详解,包括了JavaScript中this详解的使用技巧和注意事项,需要的朋友参考一下 都说 JavaScript 是一种很灵活的语言,这其实也可以说它是一个混乱的语言。它把函数式编程和面向对象编程糅合一起,再加上动态语言特性,简直强大无比(其实是不能和C++比的,^_^ )。 这里的主题是 this ,不扯远了。this 本身原本很简单,总是指向类的当
1.1 const (1) const 基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int const *a = &b; [2] int* const a = &b; [3] const int* const a = &b; [4] 如果你能区分出上述四种情况,那么,恭喜你,你已
本文向大家介绍深入浅析JavaScript系列(13):This? Yes,this!,包括了深入浅析JavaScript系列(13):This? Yes,this!的使用技巧和注意事项,需要的朋友参考一下 前言 在这篇文章里,我们将讨论跟执行上下文直接相关的更多细节。讨论的主题就是this关键字。实践证明,这个主题很难,在不同执行上下文中this的确定经常会发生问题。 许多程序员习惯的认为,在程