资讯专栏INFORMATION COLUMN

箭头函数与this

Keven / 1326人阅读

摘要:一句话概括就是箭头函数的与创建时的封闭词法上下文的保持一致。这时候会形成一个闭包,箭头函数将其词法作用域内的记录在属性上。箭头函数使用传递作用域会被忽略但是可以用来传递参数,此时第一个参数应该设置为。以下为实例实例实例

一句话概括就是: 箭头函数的this与创建时的封闭词法上下文的this保持一致。

准确一点说应该是,箭头函数没有自己的this以及arguments,所能取到的this是它被创建时的封闭词法上下文。这时候会形成一个闭包,箭头函数将其词法作用域内的this记录在scope属性上。箭头函数使用call,apply,bind传递作用域会被忽略, 但是可以用来传递参数,此时第一个参数应该设置为null。以下为实例:

const foo = ((...rest) => { console.log(this) })
let foo1 = foo.bind({demo: 1}, "demo")
// window
foo1()
function Foo() {
// Foo 实例
  console.log(this)
  this.obj = {
    // window
    foo: foo,
    // obj
    bar() { console.log(this)    },
    // Foo实例
    zoo: () => { console.log(this) },
      callF() { this.foo(), this.bar(), this.zoo() }
  }
}
let demo = new Foo()
demo.obj.callF()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92841.html

相关文章

  • ES6 - 箭头函数箭头函数普通函数的区别总结

    摘要:但是因为箭头函数没有自己的,它的其实是继承了外层执行环境中的,且指向永远不会随在哪里调用被谁调用而改变,所以箭头函数不能作为构造函数使用,或者说构造函数不能定义成箭头函数,否则用调用时会报错报错箭头函数没有自己的箭头函数没有自己的对象。 这篇文章我们来了解一下ES6中的箭头函数。首先会介绍一下箭头函数的基本语法,因为基本语法比较好理解,我们用示例做简单介绍即可。之后,我们重点来讨论一下...

    scola666 评论0 收藏0
  • 简单说 JavaScript的箭头函数

    摘要:说明箭头函数本质还是函数,我们来看看他与中普通函数的区别,先看看写法上的区别。箭头函数会捕获其所在上下文的值,作为自己的值。箭头函数不可变。这些方法也无法改变箭头函数的指向。箭头函数不能用关键字来实例化对象,不然会报错。 说明 箭头函数本质还是函数,我们来看看他与JavaScript中普通函数的区别,先看看写法上的区别。 showImg(https://segmentfault...

    Caizhenhao 评论0 收藏0
  • 箭头函数普通函数的区别及示例

    摘要:箭头函数是前端面试环节的一个高频考点,一般会问箭头函数的是指如何用普通函数实现一个箭头函数箭头函数有哪些优点带着这些问题,小编带各位上路吧箭头函数与普通函数得区别普通函数函数作为全局函数被调用时,指向全局对象函数作为对象中的方法被调用时,指 箭头函数是前端面试环节的一个高频考点,一般会问 1、箭头函数的this是指?2、如何用普通函数实现一个箭头函数3、箭头函数有哪些优点 带着这些问题...

    Backache 评论0 收藏0
  • 论普通函数箭头函数的区别以及箭头函数的注意事项、不适用场景

    摘要:第二种情况是箭头函数的如果指向普通函数它的继承于该普通函数。箭头函数的指向全局,使用会报未声明的错误。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API...

    paulquei 评论0 收藏0
  • ES6 系列之箭头函数

    摘要:回顾我们先来回顾下箭头函数的基本语法。主要区别包括没有箭头函数没有,所以需要通过查找作用域链来确定的值。箭头函数并没有方法,不能被用作构造函数,如果通过的方式调用,会报错。 回顾 我们先来回顾下箭头函数的基本语法。 ES6 增加了箭头函数: let func = value => value; 相当于: let func = function (value) { return ...

    hsluoyz 评论0 收藏0
  • es6箭头函数深入学习1

    摘要:基本用法允许使用箭头定义函数。不可以当作构造函数,也就是说,不可以使用命令,否则会抛出一个错误。箭头函数绑定,很大程度上解决了这个困扰。函数绑定箭头函数可以绑定对象,大大减少了显式绑定对象的写法。 基本用法ES6允许使用箭头(=>)定义函数。 var f = v => v;上面的箭头函数等同于: var f = function(v) { return v;};如果箭头函数不需要参数...

    娣辩孩 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<