this的值取决于它出现的上下文:函数、类或全局。
换句话说,this的指向只有被调用时才能确定,所以可能出现以下指向:
<br />
①*全局作用域中的函数,其内部this指向window;*
②*对象内部的函数,其this指向对象本身;*
③*构造函数内部的this指向生成的实例;*
④*由apply、 call、bind 改造的函数:其 this指向第一个参数;*
⑤*箭头函数没有自己的this,看其外层的是否有函数,如果有,外部箭头函数的 this就是指向内部箭头函数的this,如果没有,则 this 指向window。*
<br />
如何改变this的指向呢?使用上面提到的apply,call和bind三个方法。
~~~
apply(thisArg, argsArray)
bind(thisArg, arg1, arg2, /* …, */ argN)
call(thisArg, arg1, arg2, /* …, */ argN)
~~~
三个函数的第一个参数都是this要指向的对象,apply 和 call 的用法几乎相同, 唯一的差别在于:当函数需要传递多个变量时, apply 可以接受一个数组作为参数输入, call 则是接受一系列的单独变量。bind会返回一个新的函数,要生效还得调用一次。
- JS系列
- jQuery和axios的同步请求
- FormData和文件上传
- Http请求参数系列
- 面向对象:JS中的类与继承
- super关键字总结
- import和require语法的报错解决
- 常用的N个JS函数
- ES6新增的Set和Map
- 关于this的学习
- 人人都要会的防抖和节流
- AJAX的简单实现
- Vue
- nuxt
- 在nuxt中引入qrcode或者其他依赖包
- iVew
- 树形控件Tree的render函数
- 自定义组件:Upload封装
- React
- antd自适应高度表格
- 两个常用生命周期函数总结
- antd表格跨行处理(动态数据)
- antd中表单自定义验证踩坑
- Form+Upload实现文件上传全步骤
- 在react中实现Excel导出
- 表格嵌套和子表展开的处理
- 关于表格打印的一点思路
- Select组件中的模糊筛选
- echarts使用与总结
- echarts在react中的使用
- 简单的双层上下钻
- 复杂的多层上下钻(多次请求)
- 复杂的多层上下钻(单次请求)
- Git使用
- git基础一:安装git以及基本命令
- git基础二:add和commit
- 地图API
- 手动绘制点来实现驾车导航
- 地图自定义控件的使用
- 利用自定义标注实现头像展示
- 杂谈与总结
- 谈代码的可读性
- 简单总结判断代码质量的维度
- 3W模型看面向对象
