AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
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会返回一个新的函数,要生效还得调用一次。