name = "lzl" def f1(): print(name) def f2(): name = "eric" f1() f2() //结果为 lzl 记住在函数未执行之前,作用域已经形成了,作用域链也生成了 ...
分类:
编程语言 时间:
2019-03-19 12:01:34
阅读次数:
175
1.首先 当一个变量或者函数被声明的时候 它的执行环境便被确认 , 执行环境定义了变量和函数有权访问的其他数据,决定了他们各自的行为, 而作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期 每次进入一个新的执行环境,都会创建一个用于搜索变量和函数的作用域链。作用域链是函数被创建的作 ...
分类:
其他好文 时间:
2019-03-16 09:41:34
阅读次数:
161
首先我们需要准备一些前置知识: 变量的作用域和变量的作用域链 闭包前言:和大多数编程语言一样,javascript也采用词法作用域.也就是说,函数的执行依赖于变量的作用域,这个作用域是在函数定义时决定的,而不是函数调用的时候决定的。为了实现这种词法作用域, javascript函数对象的内部状态不仅 ...
分类:
Web程序 时间:
2019-03-07 01:09:47
阅读次数:
214
先来分析几个容易出错的题目 第一题: 这道题大家会误认为是1 其实在内部函数执行时,无论这个判断是否成立,都会对声明变量进行提升,所以var foo = undefined,所以在内部判断,因为undefined是false,取反就是true,执行var foo = 10,所以: 最后答案就是10 ...
分类:
Web程序 时间:
2019-02-25 13:23:55
阅读次数:
218
1.js作用域 2.js解析器 3.解析步骤 4.作用域链 ...
分类:
Web程序 时间:
2019-02-23 10:40:45
阅读次数:
203
第一次写博客,本来是学习jQuery遇到闭包问题,发现并没有理解闭包,发现闭包牵扯的知识点太多。复习了一遍(发现自己该记住的全忘了)写在博客里,自己也是小白,希望大神们指点迷津,必将感激不尽。 我们知道JavaScript有两个特点:单线程,解释型语(翻译一行,解释一行)。但其实翻译一行,解释一行是 ...
分类:
编程语言 时间:
2019-02-22 21:08:59
阅读次数:
159
一、原型链: 1.原型对象: 每一个构造函数都有一个prototype属性,这个属性就叫原型对象。 每一个构造函数new出来的对象都有一个--proto--属性,这个属性指向原型对象。 2.原型链 图解原型链: 二,作用域链: 解析作用域:全局作用域、局部作用域。 三、原型链和作用域链的区别: 原型 ...
分类:
其他好文 时间:
2019-02-11 19:44:36
阅读次数:
325
1: 2: 3: 4:函数是第一类对象,它符合函数的以下三个用法:函数名可以赋值,可以作为函数的参数,可以作为函数的返回值。 ...
分类:
其他好文 时间:
2019-02-03 14:20:52
阅读次数:
188
变量对象 作用域链 This 整理自:https://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 系列文章中变量对象,作用域链和this三篇文章 ...
分类:
其他好文 时间:
2019-02-02 17:19:12
阅读次数:
184
说明: 该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分——原型和闭包,当然,肯定少不了原型链和作用域链。帮你揭开javascript最神秘的面纱。 为什么要偏偏要讲这两个知识点? 这是我在这么多年学 ...
分类:
编程语言 时间:
2019-01-27 19:25:19
阅读次数:
217