record | chenfx

chenfx , record everything……


  • 首页

  • 归档

  • 站点地图

apply,bind方法原生实现

发表于 2019-07-15 | 阅读次数:

前面一节学习内容对 call 方法进行了再次学习研究,从中又感悟出不少东西;但是很常见的就是 apply、bind 三个方法同时出现作比较,那么这里也会接着 call 之后把 apply、bind 的学习理解做一个记录。

apply

apply 函数传入的是 this 的指向和参数数组,那么自己实现一个该方法怎么做?其实 apply 的实现和 call 很相似,唯一不同的地方就是方法传入的参数不太一样;既然这样,看如下实现的 apply 实例:

阅读全文 »

call的原生实现

发表于 2019-07-10 | 阅读次数:

在平时的 coding 过程中,很多时候都用到了 call 方法对当前调用方法的 this 指向做了改变,那么这个 call 究竟是怎么达到这个更改当前执行环境的 this 执行的呢?

自己实现一个 call 加深对方法的认识

首先看一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
var test = {
name: 'test name'
};
var obj = {
name: 'obj name',
fn: function () {
console.log(this.name);
}
}

obj.fn(); // obj name
obj.fn.call(test); // test name

这里我们调用 obj.fn() 方法将当前 obj 下面的 name 值打印在了控制台,那么通过 call 方法改变 obj 的执行环境后就能打印出 test name 到控制台是怎么处理的呢?实现请看下面。
自己实现一个 call 方法改变当前方法调用的执行环境

阅读全文 »

JavasScript词法,为什么10.toString()会报错

发表于 2019-07-06 | 阅读次数:

文法是编译原理中对语言的写法的一种规定,一般来说,文法分成词法和语法两种。
词法规定了语言的最小语义单元:token;从字符到词的整个过程是没有结构的,只要符合词的规则,就构成词。

概述

先学习一下 JavaScript 词法的定义,JavaScript 的输入可以分为:

  • WhiteSpace 空白字符
  • LineTerminator 换行符
  • Comment 注释
  • Token 词
    • IdentifierName 标识符名称(如变量名、关键词等)
    • Punctuator 符号,如使用的运算符或大括号等
    • NumericLiteral 数字直接量,如数字
    • StringLiteral 字符串直接量,如单引号或双引号包起来的直接量
    • Template 字符串模板,如反引号`括起来的直接量
阅读全文 »

浏览器CSSOM,如何获取一个元素的准确位置

发表于 2019-06-26 | 阅读次数:

首先,来个问题,通过对浏览器 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的正常流

发表于 2019-06-24 | 阅读次数:

css 是平时开发过程中必须使用的技术,那么,它的排版部分学习的怎么样?因为在前期css设计上不能够很好的支持在浏览器中的排版要求,需要开发者使用很多黑科技来进行处理,这就导致部分新人在接触的时候直接停止学习。
而现在css提供了很多种的排版方式,在开发时也有很多选项可以选择合适自己的哪一种;然而,正常流却是开发者始终绕不过的一种排版话题。在网上能够找到很多关于正常流的话题,如:块级格式化上下文、margin 折叠等,这一系列内容听起来就很头痛。所以,又有很多人觉得很奇怪,正常流到底正常在哪里;事实上,我认为正常流是简单和符合直觉的东西;那么什么是正常流?

阅读全文 »
123…13
chenfx

chenfx

64 日志
13 标签
GitHub
Creative Commons
© 2016 — 2023 chenfx
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3

渝公网安备 50010302001280号

渝ICP备16001477号-1