上面关于this讲了很多,this是函数用call方法调用时传递的第一个参数,而且它还可以手动更改,这样要确定this的值就太麻烦了。不过,箭头函数的出现给我们确定this帮了一些忙。 1. 箭头函数的特性一:默认绑定外层this 上面提到:this的值是可以用call方法修改的,而且只有在调用的时候我们才能确定this的值。而当我们使用箭...
2、箭头函数:无this,按照普通变量的方式向外侧寻找this; 箭头函数中所使用的this都是来自函数作用域链,它的取值遵循普通变量一样的规则,在函数作用域链中一层一层往上找。 func c:普通函数,this指向调用者obj func inner:箭头函数,无this,按照普通变量的方式寻找this,因此往外层找到了fun c内的this,为调用者:...
在js中,this的意思为“这个;当前”,是一个指针型变量,它动态指向当前函数的运行环境。 在不同的场景中调用同一个函数,this的指向也可能会发生变化,但是它永远指向其所在函数的真实调用者;如果没有调用者,就指向全局对象window。 普通函数:关于this,谁调用就指向谁,没有调用者,就指向全局对象window。 箭头函数:箭...
箭头函数内的 this 指向外层的 this。 所以要知道箭头函数的 this 就得先知道外层 this 的指向,需要继续在外层应用七步口诀。 2. new 当使用 new 关键字调用函数时,函数中的 this 一定是 JS 创建的新对象。 读者可能会有疑问,“如果使用 new 关键调用箭头函数,是不是箭头函数的 this 就会被修改呢?”。 我们...
(1)箭头函数中的this就是定义时所在的this, 也就是说 箭头函数本身没有this。 箭头函数不可以使用bind, call , applay来改变this指向 arrow的作用域是构造函数Test的作用域,Test的作用域是实例化时候的作用域 箭头函数内部的this,取决于它所在的父级的上下文的this指向,new Test() 的时候,this指向实例,所以是...
如果没有父级程序 或者 父级程序没有指向 箭头函数的this指向是window (1)匿名函数绑定的事件处理函数 this指向默认是事件源 也就是div标签对象 oDiv.addEventListener('click' , function(){ console.log(this); }) 1. 2. 3. (2)箭头函数的this指向,是父级程序的this指向,下面的箭头函数没有父级程序,所以...
箭头函数不会绑定this、arguments属性 箭头函数不能作为构造函数来使用 代码语言:javascript 复制 // {} 是执行体vararrFn=()=>{}// 指向的是对象 需要加小括号才可以做到vararrFn=()=>({name:"why"}) 箭头函数 基本写法 ():函数的参数 {}:函数的执行体 ...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须了解的知识点,现在迎来了ES6+的时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,所以刚好总结一下JavaScript中this指向的问题。 什么是JavaScript 在了解this指向的问题前,首先得了解一下什么是JavaScript。
也就是说,不可能通过call、apply、bind来绑定箭头函数的this(它本身没有this)。而call、apply、bind可以绑定缓存箭头函数上面的普通函数的this。 例如: varstudent = {name:'dog',doSth:function(){console.log(this.name);return()=>{console.log...