笔记之你不知道的JavaScript
zdhui_fly
这个作者很懒,什么都没留下…
展开
-
关于js中的this
从字面上理解this就是本身,所以this的指向就是本身,关键就是搞清楚本身指的是什么。 首先这个本身不是指函数本身,也不是指函数的词法作用域。 this是在函数调用时发生的绑定,它的指向完全取决于函数是如何调用的。当一个函数被调用时,就会创建一个活动记录(或者说是执行上下文),这个记录会包含函数在哪里调用、函数的调用方式(接下来会讲到)、传入的参数等信息,而this就是这个记录的一个属性。 ...原创 2018-07-24 14:35:48 · 297 阅读 · 1 评论 -
你不知道的JavaScript之词法作用域
词法作用域总结一下作用域的定义:作用域就是一套规则,这套规则用于引擎如何进行查找变量以及在哪找到变量(可以看看之前我博客写的引擎和作用域之间的对话)。作用域分为词法作用域(也叫静态作用域)和动态作用域,大多数语言采用的都是词法作用域,当然包括js。此法作用域最重要的特征就是它的定义过程发生在代码的书写阶段而不是运行阶段。接下来看个例子对比一下静态和动态就好理解了:考虑以下代码在静态作用于下和动态作...原创 2018-07-06 18:32:22 · 137 阅读 · 0 评论 -
你不知道的JavaScript之理解作用域(2)
在上一篇博客https://blog.csdn.net/qq_37216615/article/details/80891480 中介绍了什么是LHS和RHS,你可能会疑惑知道他两有什么用呢?结合对LHS和RHS的理解,考虑如下代码:function(a){ console.log(a+b); b=a;}foo(2);在执行log(a+b)时,引擎会对a和b分别做一次RHS查询,作用域...原创 2018-07-06 18:34:08 · 134 阅读 · 0 评论 -
你不知道的JavaScript之理解作用域(1)
理解作用域对于语句 var a = 2;编译过程分两步:一是完成变量的声明,如果同一作用域下已经有了该声明,编译器会忽略;二是为js引擎的执行生成代码;编译之后生成了可执行的代码,接下来由引擎来执行;此时引擎会做两件事情,一是LSH查询,二是RSH查询;"L"和"R"分别指左和右,但是本质上LSH指的是对变量声明的查询或者说为2找了一个容器,而RSH指的是对变量的值的查询;对于以下语句:funct...原创 2018-07-06 18:35:23 · 143 阅读 · 0 评论