归志宁无五亩园,读书本意在元元。这篇文章主要讲述this指向问题(callapplyblind),自我理解的相关的知识,希望能为你提供帮助。
在创建函数的时候,函数自身有一些属性和方法
其中有
apply、call、bind方法,这些方法都是能够改变this指向的
call:有无数的参数
第一个参数:
能够改变this指向,基本上是写啥是啥(null,undefined,设置了还是window)
从第二个参数以后,就是实参(有几个形参就对应几个实参);
function fn(a,b,c,d){ console.log(this); console.log(a+b+c+d); }
fn.call(document,1,2,3,4);//改变this指向,有无数个参数
apply:只有2个参数 第一个参数: 能够改变this指向,基本上是写啥是啥(null,undefined,设置了还是window) 第二个参数:(数组内放置的就是实参) 数组[]
function fn(a,b,c,d){ console.log(this); console.log(a+b+c+d); }
fn.apply(document,[1,2,3,4]);//改变this指向,第二个参数是数组
上面2个方法,都是使用之后自动执行函数。 bind,调用了bind方法不是直接执行函数,返回值就为新的函数(一般是改变this之后的函数) 若干参数: 第一个参数: 能够改变this指向,基本上是写啥是啥(null,undefined,设置了还是window),从第二个参数以后,就是实参(有几个形参就对应几个实参)
function fn(a,b,c,d){ console.log(this); console.log(a+b+c+d); }
let f = fn.bind(document); f(1,2,3,4); //改变了this指向,并且需要重新调用函数。
【this指向问题(callapplyblind),自我理解的】
推荐阅读
- 自动代还信用卡APP软件
- Java并发(happens-before)
- appium定位toast消息的使用
- 网易云易盾中标浙报反作弊服务 助力浙江新闻App健康发展
- Android自定义圆形ProgressBar
- H5对安卓WeView开发中的影响
- stringbuffer.append(args) args可以多类型
- Android环境搭建(大学授课课件)
- Error starting ApplicationContext. To display the conditions report re-run your application with