
笔记
赐你岁月如歌
想要成为很厉害的大人,和更可爱的小孩
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
你不知道的javaScript读书笔记(十)
行为委托在软件架构中你可以 选择是否 使用类和继承设计模式。大多数开发者理所当然地认为类是 唯一(合适)的代码组织方式,但是本章中我们看到了另一种更少见但是更强大的设计模式: 行为委托 。行为委托认为对象之间是兄弟关系, 互相委托, 而不是父类和子类的关系。JavaScript 的 [[Prototype]] 机制本质上就是行为委托机制。也就是说,我们可以选择在JavaScript 中努 力实现类机制(参见第 4 和第 5 章),也可以拥抱更自然的 [[Prototype]] 委托机制。当你只用对象来原创 2021-06-20 21:04:04 · 120 阅读 · 0 评论 -
你不知道的javaScript读书笔记(八)
混合对象“类”笔记:类是一种设计模式。 许多语言提供了对于面向类软件设计的原生语法。 JavaScript 也有类 似的语法,但是和其他语言中的类完全不同。类意味着复制。传统的类被实例化时,它的行为会被复制到实例中。类被继承时,行为也会被复制到子类 中。多态(在继承链的不同层次名称相同但是功能不同的函数)看起来似乎是从子类引用父 类,但是本质上引用的其实是复制的结果。JavaScript 并不会(像类那样)自动创建对象的副本。混入模式(无论显式还是隐式)可以用来模拟类的复制行为,但是通常会产生原创 2021-05-31 19:18:20 · 132 阅读 · 1 评论 -
你不知道的javaScript读书笔记(七)
对象笔记:JavaScript中的对象有字面形式(比如var a = { .. })和构造形式(比如 var a = new Array(..))。字面形式更常用,不过有时候构造形式可以提供更多选项。许多人都以为“JavaScript 中万物都是对象”,这是错误的。对象是 6 个(或者是 7 个,取 决于你的观点)基础类型之一。对象有包括 function在内的子类型,不同子类型具有不同 的行为,比如内部标签 [object Array] 表示这是对象的子类型数组。对象就是键 / 值对的集合。可以通原创 2021-05-18 16:46:08 · 124 阅读 · 0 评论 -
你不知道的javaScript读书笔记(六)
this全面解析笔记:this的运行机制:(1) this是在运行时绑定的,并不是在编写时绑定,它的上下文取决于函数调用时的各种条件。this的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。(2) 当一个函数被调用时,会创建一个活动记录(有时候也被称作执行上下文)。这个记录会包含函数在哪里调用(调用栈)、函数的调用方式、传入的参数等信息。this就是记录这个属性,它会在函数执行时候被用到。查看函数this的方法:this的绑定就是通过函数的直接调用位置,所以分析函数的直接调用位原创 2021-05-14 19:07:06 · 1175 阅读 · 17 评论 -
你不知道的javaScript读书笔记(五)
第五章:作用域闭包笔记:闭包就好像从JavaScript中分离出来的一个充满神秘幻想色彩的未开化世界,只有最勇敢的人才能到达那里。但实际上,它只是一个普通且明显的事实,那就是我们在词法作用域中写代码,而其中的函数也是值,可以随意传来传去。当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这就产生了闭包。如果没能认出闭包,也不了解它的工作原理,使用它的过程中就很容易犯错,比如在循环中。但同时闭包也是个非常强大的工具,可以用多种形式来实现模块等模式。模块有两个主要的特征:(1原创 2021-04-25 18:58:01 · 145 阅读 · 0 评论 -
你不知道的javaScript读书笔记(四)
第四章:提升笔记:我们习惯将 var a = 2;看作一个声明,而实际上JavaScript引擎并不这么认为。它将var a和 a = 2当作两个单独的声明,第一个阶段是编译阶段的任务,而第二个则是执行阶段的任务。这意味着无论作用域中的声明出现在什么地方,都将在代码本身被执行前首先进行处理。可以将这个过程形象地想象成所有的声明(变量和函数,函数优先于变量),都会被“移动”到各自作用域的顶端,这个过程被称为提升。这里有个误区要记录一下,函数声明会存在提升,但是函数表达式不存在提升,先来看一下下面的代码原创 2021-04-25 15:45:19 · 216 阅读 · 0 评论 -
你不知道的javaScript读书笔记(三)
第三章:函数作用域和块级作用域笔记:函数是 JavaScript 中最常见的作用域单元。本质上,声明在一个函数内部的变量或函数会 在所处的作用域中“隐藏”起来,这是有意为之的良好软件的设计原则。但函数不是唯一的作用域单元。块作用域指的是变量和函数不仅可以属于所处的作用域, 也可以属于某个代码块(通常指 { … } 内部)。从 ES3 开始, try/catch 结构在 catch 分句中具有块作用域。在 ES6 中引入了 let 关键字( var 关键字的表亲), 用来在任意代码块中声明变量。 i原创 2021-04-19 19:28:50 · 156 阅读 · 0 评论 -
你不知道的javaScript读书笔记(二)
第二章:词法作用域笔记:在第一章中说明,js的作用域查找变量是通过作用域链进行查找的,首先从当前作用域逐步查找到全局作用域结束。但是在js中有两个方法“修改”(也可以说欺骗)作用域查找,下面简单介绍一下这两个方法。一、 eval()JavaScript中的eva()函数可以接收一个字符串作为参数,并骗过js执行引擎,好像这个代码本来就在和这个位置。在执行eval()之后的代码时,引擎并不知道或者在意前面的代码时像eval()一样动态插入的,还是本来就在这里的,它只会和往常一样,对作用域进行查找。请看原创 2021-04-11 22:56:29 · 124 阅读 · 1 评论 -
你不知道的javaScript读书笔记(一)
第一章:作用域是什么笔记:(1)LHS查询和RHS查询L和R代表需要查询的左侧和右侧,例如var a = 2这个操作,LHS含义是“赋值操作的左侧”,而RHS的含义是“赋值操作的右侧”,但是它们并不意味着是=的左侧或者右侧。因此在概念上最好将其理解为“赋值操作的目标是谁(LHS)”以及“谁是赋值操作的源头(RHS)”。为了加深理解,下面有一个代码例子:function foo(a){ console.log(a)}foo(2)在上面这段代码中,最先受到触发的是执行函数foo,意味着“原创 2021-04-05 21:15:55 · 165 阅读 · 0 评论