前面一节学习内容对 call 方法进行了再次学习研究,从中又感悟出不少东西;但是很常见的就是 apply、bind 三个方法同时出现作比较,那么这里也会接着 call 之后把 apply、bind 的学习理解做一个记录。
apply
apply 函数传入的是 this 的指向和参数数组,那么自己实现一个该方法怎么做?其实 apply 的实现和 call 很相似,唯一不同的地方就是方法传入的参数不太一样;既然这样,看如下实现的 apply 实例:
在平时的 coding 过程中,很多时候都用到了 call 方法对当前调用方法的 this 指向做了改变,那么这个 call 究竟是怎么达到这个更改当前执行环境的 this 执行的呢?
首先看一个例子:
1 | var test = { |
这里我们调用 obj.fn()
方法将当前 obj 下面的 name 值打印在了控制台,那么通过 call 方法改变 obj 的执行环境后就能打印出 test name 到控制台是怎么处理的呢?实现请看下面。
自己实现一个 call 方法改变当前方法调用的执行环境
文法是编译原理中对语言的写法的一种规定,一般来说,文法分成词法和语法两种。
词法规定了语言的最小语义单元:token;从字符到词的整个过程是没有结构的,只要符合词的规则,就构成词。
先学习一下 JavaScript 词法的定义,JavaScript 的输入可以分为:
首先,来个问题,通过对浏览器 API 的学习,是不是也有这样的 API,“element.width,element.height” 直接获取元素的宽高啊?
在学习 DOM 相关 API 的时候对 DOM API 包含 DOM 树形结构相关的内容有了一定的了解,那么今天这里接触到的是一类新的 API: CSSOM。
刚接触到浏览器 API 的时候,获取元素的宽高总是要费很大功夫,并没有像 “elemen.width 和 element.height” 这样复合直觉设计的 API;但随着深入的学习,发现它们没有这样设计也有其背后的逻辑,正如 HTML 和 CSS 分别承担了语义和表现的分工,DOM 和 CSSOM 也有语义和表现的分工。
DOM 中的所有属性都是用来表现语义的属性,CSSOM 的则都是表现的属性,width 和 height 这类显示相关的属性,都属于今天要学习的 CSSOM。
顾名思义,CSSOM 是 CSS 的对象模型,在 W3C 标准中,它包含两个部分:描述样式表和规则等 CSS 的模型部分(CSSOM),和跟元素视图相关的 view 部分(CSSOM View)。
但是在实际使用中,CSSOM View 比 CSSOM 更常用一些,因为在工作中很少需要用代码动态的管理样式表。
css 是平时开发过程中必须使用的技术,那么,它的排版部分学习的怎么样?因为在前期css设计上不能够很好的支持在浏览器中的排版要求,需要开发者使用很多黑科技来进行处理,这就导致部分新人在接触的时候直接停止学习。
而现在css提供了很多种的排版方式,在开发时也有很多选项可以选择合适自己的哪一种;然而,正常流却是开发者始终绕不过的一种排版话题。在网上能够找到很多关于正常流的话题,如:块级格式化上下文、margin 折叠等,这一系列内容听起来就很头痛。所以,又有很多人觉得很奇怪,正常流到底正常在哪里;事实上,我认为正常流是简单和符合直觉的东西;那么什么是正常流?