首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ES6箭头函数

前言 今天记录一下函数之中比较重要而且经常使用箭头函数 箭头函数 基本用法 ES6 允许使用“箭头”(=>)定义函数。...上面四点,最重要是第一点。对于普通函数来说,内部this指向函数运行时所在对象,但是这一点对箭头函数不成立。它没有自己this对象,内部this就是定义时上层作用域中this。...()方法,使用了箭头函数,这导致这个箭头函数里面的this,总是指向handler对象。...const cat = { lives: 9, jumps: () => { this.lives--; } } 上面代码,cat.jumps()方法是一个箭头函数,这是错误。...嵌套箭头函数 箭头函数内部,还可以再使用箭头函数。下面是一个 ES5 语法多重嵌套函数

55020

ES6箭头函数=>

ES6标准新增了一种新函数:Arrow Function(箭头函数)。为什么叫Arrow Function?...因为它定义用就是一个箭头: x => x * x 相当于: function(x){ return x*x; } 箭头函数相当于匿名函数,并且简化了函数定义。...箭头函数表达式语法比函数表达式更简洁,并且没有自己this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数地方,并且它不能用作构造函数。...{ ... }有语法冲突,所以要改为: // ok: x => ({ foo: x }) this 箭头函数看上去是匿名函数一种简写,但实际上,箭头函数和匿名函数有个明显区别:箭头函数内部this...: // 空箭头函数返回 undefined let empty = () => {}; (() => 'foobar')(); // Returns "foobar" // (这是一个立即执行函数表达式

57841
您找到你想要的搜索结果了吗?
是的
没有找到

ES6——箭头函数

ES6之后,允许使用箭头=>来定义函数。首先我们来总结一下箭头函数存在意义,之后再来细细看它使用方法。...在箭头函数出现之前,每个新定义函数都有它自己this值。而箭头函数体内this值,就是定义时所在对象,而不是使用时所在对象。...setTimeout参数是一个箭头函数,这个箭头函数定义生效是在foo函数生成时,而它真正执行要等到100毫秒之后,如果是普通函数,执行时this应该指向全局函数window,这时应该输出21。...但是箭头函数导致this总是指向函数定义生效时所在对象,所以输出是50。 通过call或者apply也可以调用箭头函数。...建议参考阮一峰老师ES6这本书。

66120

ES6箭头函数this指向谁?

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箭头函数...,this指向最近函数this指向,即也是obj const obj = { num: 10, hello: function () { console.log(this);...perimeter是箭头函数,this应该指向上下文函数this指向,这里上下文没有函数对象,就默认为window,而window里面没有radius这个属性,就返回为NaN。

1.7K10

ES6箭头函数

ES6(ECMAScript 2015)引入了箭头函数(Arrow Functions),它是一种更简洁和更具表达力函数定义方式。...箭头函数具有更短语法形式,隐式绑定了this,并且没有自己this、arguments、super 或 new.target。基本语法:箭头函数使用箭头(=>)来分隔参数和函数体。...在上面的示例,我们定义了一个简单箭头函数hello,它不带参数,并在函数打印了一条消息。隐式返回:箭头函数还具有隐式返回特性。...let add = (a, b) => a + b;console.log(add(3, 5)); // 输出 8在上面的示例箭头函数greet接受一个参数name,并在函数体中使用该参数打印一条问候消息...箭头函数add接受两个参数a和b,并返回它们和。this 绑定:与常规函数不同,箭头函数没有自己this值,它继承了包含它父级作用域this值。

20040

es6箭头函数详解

('我是箭头函数') fun1() // 只有一个形参时候,可以省略小括号 let fun2 = a => console.log(a) fun2('我是a') // 两个及两个以上 let fun3...console.log(x, y) return x + y } fun5(30, 31) 箭头函数this: 箭头函数没有自己this,箭头函数this不是调用时候决定,而是在定义时候处在对象就是它...this 箭头函数this看外层是否有函数,如果有,外层函数this就是内部箭头函数this,如果没有,则this是window let btn1 = document.getElementById...箭头函数要想接收不定参数,应该使用rest参数...解决。...let a = { foo: 1, bar: () => console.log(this.foo) } a.bar() //undefined bar函数this指向父作用域,而a对象没有作用域

26130

ES6基础:箭头函数

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 仓库传送门,

27910

Es6新特性——箭头函数

---- theme: channing-cyan 这是我参与8月更文挑战第9天,活动详情查看:8月更文挑战 什么是箭头函数 箭头函数Es6新增一种定义函数表达式语法,它简化了我们之前写函数书写方式...箭头函数书写方式 //Es5 let sum = function(a,b){ return a + b; } // Es6 let sum1...箭头函数参数 箭头函数不能使用关键字arguments来访问,只能通过定义命名参数来访问。 我们简单说一下arguments:arguments是一个对应于传递给函数参数类数组对象。...如果该函数是一个对象方法,则它this指针指向这个对象。但在箭头函数箭头函数不会创建自己this,它只会从自己作用域链上一层继承this。...在对象上定义函数 在原型上定义函数 动态上下文中回调函数 构造函数 太简短(难以理解)函数

33310

通过vue.js 学习来总结es6语法箭头函数箭头函数原理分析。

--------------------- ES6标准新增了一种新函数:Arrow Function(箭头函数)。...因为它定义用就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义。...{ ... }有语法冲突,所以要改为: // ok: x => ({ foo: x }) this    —— 笔者认为this是重点需要关注学习目标 箭头函数看上去是匿名函数一种简写,但实际上,箭头函数和匿名函数有个明显区别...由于this在箭头函数已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入第一个参数被忽略: var obj = { birth:...) // } //---总结--- //箭头函数一般用于函数嵌套时,防止this指向变化,在箭头函数 //this指向一直是外层对象,即廖雪峰大神说箭头函数完全

1.5K20

ES6 系列之箭头函数

回顾 我们先来回顾下箭头函数基本语法。...ES6 增加了箭头函数: let func = value => value; 相当于: let func = function (value) { return value; }; 如果需要给函数传入多个参数...没有 this 箭头函数没有 this,所以需要通过查找作用域链来确定 this 值。 这就意味着如果箭头函数被非箭头函数包含,this 绑定就是最近一层非箭头函数 this。...确实可以这样做,但是在实际开发,我们可能会在 setBgColor 还调用其他函数,比如写成这种: Button.prototype.setBgColor = function() {...对象属性函数就被称之为 method,那么 non-mehtod 就是指不被用作对象属性函数了,可是为什么说箭头函数更适合 non-method 呢?

43720

ES6 箭头函数 Arrow Function

ES6 前定义函数 2. ES6 箭头函数语法 3. ES6 箭头函数返回值 4. 箭头函数 this 到底是谁 ?...前言 ---- ES6 新增了一种新函数: 箭头函数 Arrow Function 箭头函数相当于匿名函数,简化了函数定义,将原函数 function 关键字和函数名都删掉,并使用 => 连接参数和函数体...ES6 箭头函数语法 ---- 当没有参数时, 可以定义为以下形式 const test = () => { } 当只有一个参数时,括号可以省略。...=> ({ name: 'liang' }), 箭头函数直接返回一个数据写法,多用于 vue,uniapp 开发 export default { name: "my-search", props:...箭头函数 this 到底是谁 ? ---- 箭头函数 this 指向问题标准答案: 向外层作用域中一层层查找 this,直到有 this 定义

22210

ES6特性之:箭头函数

ES6所有新特性箭头函数(Arrow Fucntion)算是我用最频繁特性之一了。 它是函数 那什么是箭头函数呢?首先,它得有“函数功能。...在一个对象成员函数内嵌函数,它this对象并不是指向成员函数所指向this对象(也就是这个例子person对象),而是指向当前执行上下文顶层对象(在浏览器运行的话,就是Window对象...我们可以像如下代码一样,在成员函数定义一个变量,把成员函数this缓存下来,然后在内嵌函数中使用成员函数这个变量,这样就达到成员函数和内嵌函数拿到数据都是一样: var person =..._name; }; return getMyIntro(); } }; person.intro(); //My name is Kevin 在ES6,我们也可以通过箭头函数来轻松解决这个问题...getMyIntro定义成了一个箭头函数,这样的话,箭头函数this是和当前上下文中this是一致了。

28410

浅浅分析下es6箭头函数

前言 箭头函数作为es6重点语法内容之一,很多开发者对其爱不释手,当也要注意其可能存在问题,其正确使用场景,否则会引起不必要bug。...不适用场景 定义对象方法 一般情况下如果想定义对象下函数,是多少涉及使用对象其他属性,如果用箭头函数会因为对象无法形成作用域,没有相关上下文,导致this指向全局。...特别需要说明一点是,如果你对象属性方法需要定义方法,同时想使用对象属性,那么此时建议使用箭头函数。...比如以下场景: 1 业务或者语法判断过于复杂 2 返回值情况很复杂 建议 尽管箭头函数和let、const以及一些es6语法变得风行,甚至于有些人觉得用箭头函数就觉得自己技术进阶了,其实不然,大多人人还是停留在了它写法上便利...参考文档 什么时候不能使用箭头函数 arowFun,我codepen案例 mdn链接 深入浅出箭头函数 不能滥用箭头函数

32710
领券