摘要:
(1)借用构造函数继承 案例如下: 验证: (2)组合继承 案例如下: 验证如下: 结果如右图所示 . . 阅读全文
摘要:
【前言】 之前已经介绍了对象创建的五种模式,下面看下继承模式 本节介绍下《原型链继承》 【主体】 验证如下: 关键点: . 阅读全文
摘要:
【前言】 函数高级部分先看到这里,接下里看下面向对象高级部分 1、对象创建模式 2、继承模式 【主体】 (1)Object构造函数模式 案例如下: 测试结果如右图所示 (2)对象字面量形式创建 案例如下: 结果如右侧所示 (3)工厂模式创建对象 案例如下: 工厂模式问题--局限性,验证如下 (4)自 阅读全文
摘要:
【面试题1】 答案:The Window 分析: 本案例里,不存在闭包。 条件: 1、函数嵌套(满足) 2、内部函数调用外部函数变量(没有) 综上所述,该例中不存在闭包 【面试题2】 答案:My Object 分析: 案例2为闭包,具体如下所示 . 阅读全文
摘要:
发现网上一堆闭包的教程都说闭包会造成内存泄漏,特意去查了下书,发现这一直是一个误解。 js高程原文这样说的:由于IE9 之前的版本对JScript 对象和COM 对象使用不同的垃圾收集。因此闭包在IE 的这些版本中会导致一些特殊的问题。具体来说,如果闭包的作用域链中保存着一个HTML 元素,那么就意 阅读全文
摘要:
什么是闭包?能够访问其他函数内部变量的函数 闭包解决了什么问题由于变量的作用域的原因 (函数内部能读取全局变量,函数外部无法读取函数内部的变量【局部变量】),为了在函数外部读取局部变量,所以就有了闭包。 闭包的作用1.访问其他函数内部变量2.保护变量不被内存回收机制回收3.避免全局变量被污染 方便调 阅读全文
摘要:
【大纲】 【主体】 (1)闭包优缺点 1、延长局部变量的生命周期2、外部访问函数内部变量 闭包的优点同时也是它的缺点,就是 (2)解决方案 1、能不用闭包就不用(很难做到,因为应用较多) 2、及时释放 通过null,将其设置为垃圾对象,利用垃圾回收机制回收 如下所示,及时释放 (3)内存溢出与内存泄 阅读全文
摘要:
【自定义JS模块】 【闭包案例】 (1)案例1 对应的模块文件 (2)案例2 使用匿名函数 对应的模块文件 案例2分析:因为内部函数引用了外部函数的变量,且存在嵌套关系,所以是闭包,分析结构图如下 . 阅读全文
摘要:
大纲: 主体: (1)场景1:点击按钮显示点击的第几个 注意:伪数组每次循环时都会重新计算一次长度,所以最好提出去或者直接加到for循环内部 结果: 分析: 1、i为全局变量 解决方案: 1、下标法 2、闭包法 变量分类与读取: 【闭包理解】 (1)首先做下断点测试 (2)自定义验证: (3)闭包条 阅读全文
摘要:
面试题1: ,答案为10 有一点需要明确:作用域是在定义编写代码时已经决定好的 面试题2: 结果1: 结果2: 首先在内部作用域找,没有 然后在全局作用域找,window没有,所以会报错如果想找对象内部的它,此时需要借助this . 阅读全文
摘要:
一句话介绍 . 阅读全文
摘要:
大纲: 主体: (1)概论 (2)层级 执行上下文层级为n+1原则 作用域层级也是n+1原则 验证: (3)函数作用域作用 隔离变量,不同作用域下,相同变量名不会有冲突 (4) . 阅读全文
摘要:
大纲: 主体: 注意:*******函数调用时才会产生上下文栈,声明时不会产生********** 顺序: 概念图: 执行上下文栈的顺序 →后进先出 其他概念图: 当前执行的上下文总是在顶部 全局执行上下文总是在底部 【面试题】 递归调用:在函数内部去调用本身 递归一般都会有退出条件,不然会是死循环 阅读全文
摘要:
1、代码分类 2、全局执行上下文 3、函数执行上下文 . 阅读全文
摘要:
大纲: 主体: 案例1: 接下来在控制台source里进行断点测试 打好断点后,在控制台测试window . 阅读全文
摘要:
测试1: 分析如下 结果如下: 测试2: 测试3: 测试4: . 阅读全文
摘要:
一句话: . 阅读全文
摘要:
【大纲】 【主体】 1、创建函数 注意:Object内置原生对象原来就有 2、添加实例方法 3、根据构造函数创建实例对象 原型链寻找 1、本身有在本身找 2、本身没有往摸着隐式原型链往里找 或者再上层 4、原型链尽头 Object.prototype.__prop__为null 5、原型链理解 本质 阅读全文
摘要:
前言: 1、函数对象即函数的prototype原型属性指向原型对象,在创建函数时便存在,默认为空Object 2、实例对象的__proto__隐式原型在实例化创建实例时产生,值等于构造函数的显式prototype原型属性的值3、开发时程序员操作显式原型在原型prototype上添加方法,不能直接操作 阅读全文
摘要:
思维导图 栈堆翻译为为stack (1)原型与原型链 概念一、原型对象 验证步骤: 1、打印Data函数的原型prototype 原型属性指向原型对象 ES源码结构分析示意 2、空对象 3、JS特点:动态添加属性 小结: prototype原型、constructor构造 1、每个函数有一个prot 阅读全文