- 博客(3)
- 收藏
- 关注
原创 this笔记
this提供了一种优雅的方式来隐式的“传递”一个对象引用,因此可以将API设计的更加简洁并且易于复用。1,一些误解1.1 指向自身明显并不是指向函数自身的;1.2 指向函数的作用域作用域确实和对象类似,可见的标识符都是它的属性,但是作用域“对象”无法通过js代码访问,它存在于js引擎内部;1.3事实this是在运行时进行绑定的,并不是在编写的时候绑定,它的上下文取决于函数调用时的各个条件。this...
2018-04-15 00:58:23 204
原创 词法作用域(遮蔽效应,欺骗词法)
1 词法化大部分标准表一起的第一个工作阶段是词法化,对源代码的字符进行检查,如果是有状态的解析过程还会赋予单词语义;一般来说词法作用域是由书写代码时,把变量和块作用域写在哪里决定的,因此词法分析器在处理代码时会保持作用域不变(大部分情况是这样,而且我们推荐这样写);2 遮蔽效应作用域查找时,会在找到第一个匹配的标识符时停止,这叫做遮蔽效应;全局变量会自动的成为全局对象(比如浏览器中的window对...
2018-04-11 16:40:02 398
原创 关于JavaScript中的变量提升和使用未经声明的变量会产生全局变量的原因
1 js编译过程,理解变量提升包括 引擎、编译器和作用域;以var a = 2; 为例,编译器把代码分解为词法单元,把词法分解为一个树结构。然后当编译器进行代码生成时,1,对于var a ,编译器询问作用域是否已经有一个同名的变量存放在当前作用域;是则忽略该声明,否则要求作用域在当前作用于的集合中声明一个新的变量,命名为a;2,接下来编译器为引擎生成运行时需要的代码,这些代码用来处理a=2;引擎运...
2018-04-11 15:54:46 1143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人