不能用作构造函数:由于没有自己的this,因此不能使用new关键字调用箭头函数。 不支持call、apply和bind方法:这些方法用于改变函数内部的this指向,但箭头函数没有自己的this,因此这些方法对其无效。 2. 箭头函数中this的绑定规则 箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。这意味着箭头函数...
JavaScript在ES6语法中新增了箭头函数,相较于传统函数,箭头函数不仅更加简洁,而且在this方面进行了改进。this作为JavaScript中比较诡异的存在,许多文章对于this的解释也不尽相同,本篇文章试图厘清JS中函数与this的关系。 一、JS中函数的写法 1.常规函数的写法 在ES6语法之前,JS中的函数由function关键字、params参数和被...
2、箭头函数:无this,按照普通变量的方式向外侧寻找this; 箭头函数中所使用的this都是来自函数作用域链,它的取值遵循普通变量一样的规则,在函数作用域链中一层一层往上找。 func c:普通函数,this指向调用者obj func inner:箭头函数,无this,按照普通变量的方式寻找this,因此往外层找到了fun c内的this,为调用者:...
如果函数只有一个参数,可以不写()constfun =function(e){} 普通函数constfun = e =>{} 箭头函数 如果执行体中只有一行代码,可以不写{}constfun = e=>{console.log(e)} 普通箭头函数constfun = e=>console.log(e) 不写{}箭头函数constoDiv = document.querySelector('div');//普通函数oDiv.addEventLis...
箭头函数内的 this 指向外层的 this。 所以要知道箭头函数的 this 就得先知道外层 this 的指向,需要继续在外层应用七步口诀。 2. new 当使用 new 关键字调用函数时,函数中的 this 一定是 JS 创建的新对象。 读者可能会有疑问,“如果使用 new 关键调用箭头函数,是不是箭头函数的 this 就会被修改呢?”。
1、this指向window 声明式函数 匿名函数 定时器 延时器 forEach循环 2、this指向事件源 事件绑定中,事件处理函数 this指向默认是事件源,也就是绑定事件的标签对象 3、this指向数组/对象 数组/对象 中存储的函数this指向是这个数组/对象 二、箭头函数的this指向 ...
1、简化函数的定义 函数传递参数 简化函数执行上下文绑定的方式 this在js里面使用场景较多,切换也比较频繁,因此带来了各种运行时因为上下文切换导致的错误,如下代码: 由于使用了setTimeout在1000ms以后执行console中的内容,此时this已经不代表c对象的实例,此时this为全局的this,所以运行时候输出undefined。此种情况下传统的...
f2] }*/首先我们看一下对象属性,虽然箭头函数是在对象内部定义的,但this的指向还是与外部的this指向...
functionfoo(){console.log(this)}// 1 调用方式1foo();// 2 调用方式2 放入对象中调用varobj={name:"why",foo:foo}obj.foo()// 调用方式三 通过 call/apply 调用foo.call("abc") 指向定义 this 是js 给函数的一个绑定值。 函数在调用时 JavaScript会默认给this绑定一个值; ...
2. js 使用 addEventListener 绑定事件 此时的普通函数 this 指向该元素,箭头函数this指向window 点击 点击 functiona() { console.log(this);//点击}varb =()=>{ console.log(this);//window} document.getElementById('btn1').addEventListener('click',a); document....