JS中this的四种用法 1.在一般函数方法中使用 this 指代全局对象 function test(){ this.x = 1; alert(this.x); } test(...如果把最后一行代码修改为 o.m.apply(o); //1 ES6中箭头函数与普通函数this的区别 普通函数中的this: 1. this总是代表它的直接调用者, 例如 obj.func ,那么...结果:window,window 第一个this:f1调用时没有宿主对象,默认是window 第二个this:继承父级的this,父级的this指代的是window 关于this指向问题的讨论一直是学习js...,this指向了window(匿名函数,没有调用的宿主对象),而window对象并没有num属性(num属性在obj中定义),而在使用箭头函数的情况下,this的指向却对象obj1,自然可以输出obj1...就绑定的window上 }); } f(); } } obj1.fn(); 总结: 1.箭头函数的this绑定看的是this所在的函数定义在哪个对象下,绑定到哪个对象则this
ES6之后,允许使用箭头=>来定义函数。首先我们来总结一下箭头函数存在的意义,之后再来细细的看它的使用方法。...() => {函数声明} 箭头函数的一个用处就是简化回调函数。...在箭头函数出现之前,每个新定义的函数都有它自己的this值。而箭头函数体内的this值,就是定义时所在的对象,而不是使用时所在的对象。...但是箭头函数导致this总是指向函数定义生效时所在的对象,所以输出的是50。 通过call或者apply也可以调用箭头函数。...建议参考阮一峰老师的ES6的这本书。
ES6(ECMAScript 2015)引入了箭头函数(Arrow Functions),它是一种更简洁和更具表达力的函数定义方式。...箭头函数具有更短的语法形式,隐式绑定了this,并且没有自己的this、arguments、super 或 new.target。基本语法:箭头函数使用箭头(=>)来分隔参数和函数体。...在上面的示例中,我们定义了一个简单的箭头函数hello,它不带参数,并在函数体中打印了一条消息。隐式返回:箭头函数还具有隐式返回的特性。...箭头函数add接受两个参数a和b,并返回它们的和。this 绑定:与常规函数不同,箭头函数没有自己的this值,它继承了包含它的父级作用域的this值。...注意事项:尽管箭头函数具有许多优点,但也有一些限制和注意事项:箭头函数没有自己的this,因此无法用作构造函数。箭头函数也没有自己的arguments对象,但可以通过使用剩余参数语法来获取参数。
let fun = function () { console.log('原始函数') } fun() // 没有形参的时候 let fun1 = () => console.log('我是箭头函数...this: 箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this 箭头函数的this看外层是否有函数,如果有,外层函数的this就是内部箭头函数的...============================================================================ let obj = { name: '箭头函数...arguments,caller,callee 箭头函数本身没有arguments,如果箭头函数在一个function内部,它会将外部函数的arguments拿过来使用。...箭头函数中要想接收不定参数,应该使用rest参数...解决。
箭头函数基本形式 wdnda 箭头函数基本特点 「1.箭头函数this为父作用域的this,不是调用时的this」 箭头函数的this永远指向其父作用域,任何方法都改变不了,包括call,apply...「2.箭头函数不能作为构造函数,不能使用new」 由于this必须是对象实例,而箭头函数是没有实例的,此处的this指向别处,不能产生person实例,自相矛盾。「3....箭头函数没有arguments,caller,callee」 箭头函数本身没有arguments,如果箭头函数在一个function内部,它会将外部函数的arguments拿过来使用。...箭头函数中要想接收不定参数,应该使用rest参数...解决。...箭头函数返回对象时,要加一个小括号」 var func = () => ({ foo: 1 }); //正确 var func = () => { foo: 1 }; //错误 「8.箭头函数在ES6
箭头函数 箭头函数表达式没有自己的this,arguments,super或new.target。...引入箭头函数作用 引入箭头函数的作用:更简短的函数并且不绑定this 更简短的函数 let sum = (x,y,z) => { return x+y+z; } 不绑定this 在箭头函数出现之前,每个新定义的函数都有他自己的...通过call、apply调用箭头函数 由于箭头函数没有自己的this指针,通过call()、apply()方法调用时,第一个参数会被忽略。...箭头函数不能使用new操作符 箭头函数不能用作构造器,和 new一起用会抛出错误。...因此,箭头函数不能用作生成器。
Js箭头函数 箭头函数是ES6新增的语法,提供了一种更加简洁的函数书写方式,类似于匿名函数,并且简化了函数定义。 完整写法 完整写法类似于匿名函数,省略了function关键字。...this,在箭头函数的函数体中使用this时,会取得其上下文context环境中的this。...箭头函数调用时并不会生成自身作用域下的this,它只会从自己的作用域链的上一层继承this。...由于箭头函数没有自己的this指针,使用apply、call、bind仅能传递参数而不能动态改变箭头函数的this指向。...var s = () => {}; console.log(s.prototype); // undefined 不能用作函数生成器 箭头函数不能用作Generator,yield关键字通常不能在箭头函数中使用
ES6基础系列(三)箭头函数 一、基本用法 先来看看 ES5 中我们怎么写一个函数 const foo = function (num) { return num + 1; }; 再来看看...ES6 为我们提供的箭头函数 const foo = (num) => num + 1; 看这个例子难道箭头函数是为了让我们的代码看上去更“高大上”吗?...箭头函数中的 this,就绑定在它最近一层非箭头函数的 this. 一句话理解:箭头函数内部的 this 是词法作用域,由上下文确定。...this 指向对象 第二个箭头函数,它的 this 绑定在最近一层非箭头函数,也就是 obj 上 2.2 没有 arguments 箭头函数没有自己的 arguments 对象,这不一定是件坏事,因为箭头函数可以访问外围函数的...参考 ES6 系列之箭头函数 廖雪峰:箭头函数 写在最后 关于我 花名:余光(沉迷 JS,虚心学习中) 如果您看到了最后,对文章有任何建议,都可以在评论区留言 这是文章所在 GitHub 仓库的传送门,
-----横线部分来自廖雪峰大神的官方网站------------------------------------------------------------------------------ ES6...因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义。...,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。...test <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.<em>js</em>...) // } //---总结--- //<em>箭头</em>函数一般用于函数嵌套时,防止this指向变化,在<em>箭头</em>函数 //中this的指向一直是外层对象,即廖雪峰大神说的“<em>箭头</em>函数完全
---- theme: channing-cyan 这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战 什么是箭头函数 箭头函数是Es6新增的一种定义函数表达式的语法,它简化了我们之前写的函数书写方式...在任何使用函数表达式的地方,都可以使用箭头函数。但箭头函数有些地方与传统书写方式还有差异,我们在下面来为大家讲解。...箭头函数书写方式 //Es5 let sum = function(a,b){ return a + b; } // Es6 let sum1...箭头函数中的参数 箭头函数不能使用关键字arguments来访问,只能通过定义的命名参数来访问。 我们简单说一下arguments:arguments是一个对应于传递给函数的参数的类数组对象。...但在箭头函数中,箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。
前言 今天记录一下函数之中的比较重要而且经常使用的箭头函数 箭头函数 基本用法 ES6 允许使用“箭头”(=>)定义函数。...// ES6 function foo() { setTimeout(() => { console.log('id:', this.id); }, 100); } // ES5 function...嵌套的箭头函数 箭头函数内部,还可以再使用箭头函数。下面是一个 ES5 语法的多重嵌套函数。...(λx.f(λv.x(x)(v)))(λx.f(λv.x(x)(v))) // ES6的写法 var fix = f => (x => f(v => x(x)(v)))...由于 λ 演算对于计算机科学非常重要,这使得我们可以用 ES6 作为替代工具,探索计算机科学。
ECMAScript 6 箭头语法为我们提供了一个工具,箭头函数能保存函数创建时的 this值,而不是调用时的值: 例如: export class ThisScope { txt:string...return () => {this.showInfo()} } showInfo() { console.log(this.txt) } } 上面cf2使用了箭头语法
ES6 前定义函数 2. ES6 箭头函数语法 3. ES6 箭头函数返回值 4. 箭头函数中的 this 到底是谁 ?...前言 ---- ES6 新增了一种新的函数: 箭头函数 Arrow Function 箭头函数相当于匿名函数,简化了函数定义,将原函数的 function 关键字和函数名都删掉,并使用 => 连接参数和函数体...ES6 箭头函数语法 ---- 当没有参数时, 可以定义为以下形式 const test = () => { } 当只有一个参数时,括号可以省略。...ES6 箭头函数返回值 ---- 当方法体只有一条语句时可以省略花括号 // 普通写法 // const math = (num1, num2) => { // return num1 + num2 /...箭头函数中的 this 到底是谁 ? ---- 箭头函数中的 this 指向问题标准答案: 向外层作用域中一层层查找 this,直到有 this 的定义
回顾 我们先来回顾下箭头函数的基本语法。...ES6 增加了箭头函数: let func = value => value; 相当于: let func = function (value) { return value; }; 如果需要给函数传入多个参数...没有 this 箭头函数没有 this,所以需要通过查找作用域链来确定 this 的值。 这就意味着如果箭头函数被非箭头函数包含,this 绑定的就是最近一层非箭头函数的 this。...this.setBgColor.bind(this), false); }; 为避免 addEventListener 的影响,使用 bind 强制绑定 setBgColor() 的 this 为实例对象 使用 ES6...没有原型 由于不能使用 new 调用箭头函数,所以也没有构建原型的需求,于是箭头函数也不存在 prototype 这个属性。
认识箭头函数 es6 新增了使用胖箭头(=>)语法定义函数表达式的能力,很大程度上,箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。...任何可以使用函数表达式的地方,都可以使用箭头函数: // 普通函数 let sum = function(a, b) { return a + b; } // 箭头函数 let sum1 =...(a, b) => { return a + b; } 箭头函数简洁的语法对开发者来说是十分友好的,从上面的例子可以得知箭头函数的简单用法: (参数) => { 函数体 } 2....(1, 2); // Uncaught ReferenceError: arguments is not defined 虽然箭头函数中没有 arguments 对象,但可以在包装函数中把它提供给箭头函数...如果fn1也是个箭头函数呢?
在ES6的所有新特性中,箭头函数(Arrow Fucntion)算是我用的最频繁的特性之一了。 它是函数 那什么是箭头函数呢?首先,它得有“函数”的功能。...const greeting = (name) => { return "Hello," + name; } 更进一步,这个箭头函数还可以简化,在箭头后面只使用一个表达式: const greeting...在ES6之前,我们怎么来解决这个问题呢?..._name; }; return getMyIntro(); } }; person.intro(); //My name is Kevin 在ES6中,我们也可以通过箭头函数来轻松解决这个问题...,这样的话,箭头函数中的this是和当前上下文中的this是一致的了。
ES6相关概念就不多解释啦,语法也成为了前端的主流,平时在很多场景开发中都会遇到,一下是关于ES6系列笔记的一些记录~ 1:普通写法和箭头函数 //箭头函数...//箭头函数数组排序 let arr = [1, 23, 45, 67, 3, 2, 22]; arr.sort((n1, n2) => { return...n1 - n2; // }); // console.log(arr) //只有一个return的时候,{}可以省略 //箭头函数数组排序..."utf-8"> //箭头函数
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。为什么叫Arrow Function?...因为它的定义用的就是一个箭头: x => x * x 相当于: function(x){ return x*x; } 箭头函数相当于匿名函数,并且简化了函数定义。...箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。...箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ ... }和return都省略掉了。...,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。
函数体如果有多个语句,需要使用{}包围,若有返回的内容, 需要手动返回 * 使用场景: * 多用于定义回调函数 * * 箭头函数的特点...箭头函数没有自己的this, 箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this * 普通函数是,谁调用这个函数,函数内的this就是谁,箭头函数是在谁的内部定义的...扩展题解: 箭头函数的this看外层是否有函数 * 如果有,外层函数的this就是内部箭头函数的this * 如果没有,则this就是window.../** * 箭头函数分为两个部分 * => 左边的形参 * 左边的形参对应函数的形参 * => 右边的执行体...return x + y } console.log(executeFun4(10,20)) /** * 尝试解构对象箭头函数
ES6箭头函数中this (1)默认指向定义它时,所处上下文的对象的this指向。...即ES6箭头函数里this的指向就是上下文里对象this指向,偶尔没有上下文对象,this就指向window (2)即使是call,apply,bind等方法也不能改变箭头函数this的指向 一些实例加深印象...console.log(this); // window }); } } obj.hello(); (4)hello直接调用者是obj,第一个this指向obj,setTimeout箭头函数...perimeter是箭头函数,this应该指向上下文函数this的指向,这里上下文没有函数对象,就默认为window,而window里面没有radius这个属性,就返回为NaN。
领取专属 10元无门槛券
手把手带您无忧上云