栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScrip Arrow Functions and This

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScrip Arrow Functions and This

简短的答案:

this
指向最接近的边界
this
-所提供的代码
this
位于封闭范围内。

更长的答案:箭头功能

this
创建它们时将其绑定 没有
this
arguments
或结合其它特殊名字都正在创建对象时的名称
this
是在封闭的范围内,没有找到
person
对象。您可以通过移动声明来更清楚地看到这一点:

var person = {  name: "Jason"};person.shout = () => console.log("Hi, my name is", this);

并且在翻译成ES5中箭头语法的模糊近似时更加清晰:

var person = {  name: "Jason"};var shout = function() {  console.log("Hi, my name is", this.name);}.bind(this);person.shout = shout;

在这两种情况下,

this
(对于shout函数)都指向与其中
person
定义的作用域相同的函数,而不是将函数添加到
person
对象时附加的新作用域。

不能
使箭头函数那样工作,但是,正如@kamituel在他的答案中指出的那样,您可以利用ES6中较短的方法声明模式来节省相似的空间:

var person = {  name: "Jason",  // ES6 "method" declaration - leave off the ":" and the "function"  shout() {    console.log("Hi, my name is", this.name);  }};


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456680.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号