JavaScript在ES6语法中新增了箭头函数,相较于传统函数,箭头函数不仅更加简洁,而且在this方面进行了改进。this作为JavaScript中比较诡异的存在,许多文章对于this的解释也不尽相同,本篇文章试图厘清JS中函数与this的关系。 一、JS中函数的写法 1.常规函数的写法 在ES6语法之前,JS中的函数由function关键字、params参数和被...
从控制台中可以看出,箭头函数不能当做构造函数,所以不能与 new 一起执行。 3. bind 多次bind 时只认第一次 bind 的值 易错点 function func() { console.log(this) } func.bind(1).bind(2)() // 1 1. 2. 3. 4. 5. 箭头函数中 this 不会被修改 func = () => { // 这里 this 指向取决于...
// 箭头函数,this指向是父级程序 // 当前箭头函数,父级程序是对象 // 对象是没有this的,箭头函数this指向是window fun2:()=>{ console.log(this) }, fun3:function(){ // 定义在对象中的函数fun3,this指向是对象本身 // 函数fun4是一个箭头函数 // 存储在 函数fun3 中 父级程序就是函数fun3 //...
function(){}--- ()=>{} 箭头函数 function(e){}--- e =>{} 箭头函数 function(){一行}--- ()=>一行 箭头函数 function(e){一行}--- e =>一行 箭头函数 特点:1,this指向与一般的function函数不同 声明式 function fun(){} this指向,window 赋值式varfun =function(){} this指向,window forEa...
首先我们试一下,在不同的环境和模块化规范下,直接执行函数。functionfun1(){console.log(1,this);}...
js箭头函数this 1、普通函数: this指向调用者;(./call/bind) 函数的内部函数指向window var obj = { b: () => { console.log(this);#19行 var innerDiameter = function () { console.log(this); #21行 }; innerDiameter(); }, c: function () {...
在js中有全局作用域,函数作用域,块级作用域,没有对象作用域 箭头函数里面没有自己的this,箭头函数的this跟箭头函数所在作用域里面的this一致 2.7.1、箭头函数定义在函数中 function fn() { return () => { console.log(this); } } let test = fn() test()/...
箭头函数的this指向在其定义时所在的上下文中的this。即使作为对象的属性值,箭头函数的this依旧指向定义时的上下文。例如:(function() { const arrowfunc = () => console.log(this) console.log('-- 外层作用域 --'); console.log(this); // String {'hello'} arrowfunc(); // String {...
call(a, b, c)方法接收三个参数,第一个是this指向,第二个,三个是传递给函数的实参,可以是数字,字符串,数组等类型的数据类型都可以。 示例: //定义函数functionfn(n1,n2){console.log(this);console.log(n1,n2)}//调用call()方法fn.call();//=>this:window;letobj={fn:fn};fn.call(obj);//=>...