为了账号安全,请及时绑定邮箱和手机立即绑定

箭头函数和这个

箭头函数和这个

婷婷同学_ 2019-06-24 17:11:54
箭头函数和这个我正在试用ES6,并希望在我的函数中包含一个属性,如下所示var person = {   name: "jason",   shout: () => console.log("my name is ", this.name)}person.shout() // Should print out my name is jason但是,当我运行此代码控制台时,只记录my name is..我做错什么了?
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

公认的答案是出色、简洁和清晰的,但我将详细阐述肖恩·维埃拉的话:

箭头函数根本不绑定此参数或其他特殊名称。

因为箭头函数没有“this”,所以它使用父函数的“this”。“这个”总是指向父对象,而Person对象的父对象是窗口(如果您在浏览器中)。

要证明这一点,请在您的控制台中运行:

var person = {
    name: "Jason",
    anotherKey: this}console.log(person.anotherKey)

你会得到窗口对象。

我发现这是一个非常有用的思考方法。这并不是一个完整的故事,因为一个对象字面上的“这个”是另一个讨论。


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 636 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号