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

箭头函数this值

其实那只是其中一个因素,还有一个因素就是在ZnHobbies方法this已经不属于上一个区块,而这里this并没有name值。...所以 解决办法其中一个就是在ZnHobbies函数写入 var that = this; 然后将this替换成that,所以输出结果,就有了lucifer名字啦。...还有的一个办法就是将ZnHobbies函数map改写成箭头函数: ZnHobbies: function () { this.hobbies.map((hobby)=...为什么箭头函数可以达到这样效果呢?是因为箭头函数没有它自己'this'值。它this值是继承于它父作用域。...所以它不会随着调用方法改变而改变,所以这里this值就指向它父级作用域,而上一个this指向是Lucifer这个Object。所以我们就能准确得到Lucifername值啦。

2.2K20

JavaScript箭头函数

箭头函数语法 函数就像食谱一样,你在其中存储有用指令,以完成你需要在程序中发生事情,比如执行一个动作或返回一个值。通过调用函数,来执行食谱包含步骤。...你可以把函数存储在变量,把它们作为参数传递给其他函数,并从其他函数把它们作为值返回。你可以使用JavaScript箭头函数来做所有这些事情。 无圆括号语法 在上述示例函数是没有参数。...因此,函数处理器this也被绑定到全局作用域中--也就是Window对象。 因此,如果你想让this引用程序开始按钮,正确做法是使用一个常规函数,而不是一个箭头函数。...匿名箭头函数 在上面的演示,接下来要注意是.setInterval()方法代码。在这里,你也会发现一个匿名函数,但这次是一个箭头函数。为什么?...这意味着arguments对象在箭头函数是不可用

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

ES6箭头函数

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

55920

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" // (这是一个立即执行函数表达式

58741

箭头函数

箭头函数(★★★) ES6新增定义函数方式。...() => {} //():代表是函数; =>:必须要符号,指向哪一个代码块;{}:函数体 const fn = () => {}//代表把一个函数赋值给fn 函数只有一句代码,且代码执行结果就是返回值...this关键字,箭头函数this,指向函数定义位置上下文this const obj = { name: '张三'} function fn () { console.log(...this);//this 指向 是obj对象 return () => { console.log(this);//this 指向 箭头函数定义位置,那么这个箭头函数定义在...this,箭头函数this指向是它所定义位置,可以简单理解成,定义箭头函数作用域this指向谁,它就指向谁 箭头函数优点在于解决了this执行环境所造成一些问题。

1.1K20

揭秘箭头函数

如果您还没有阅读 JavaScript 函数表达式,我建议您在继续阅读之前先阅读这篇文章。 现在,让我们试着从语法、执行、作用域和提升以及代码示例方面来理解箭头函数。 1....主要区别在于函数编写方式。 以下是我们可以根据其语法从上述代码得出观察结果: 它不包含 function 关键字。 它没有 函数名 ,这意味着这些是匿名函数。 引入了箭头 => 符号。...根据箭头函数语法,如果函数只接受一个参数,可以忽略括号()。如果函数只包含一条语句,则可以忽略块{},最后其实也可以忽略return ,如果函数只包含一个语句。 2....在这个阶段,它将创建参数对象并在其本地内存堆声明所有变量。 与普通函数相比,主要区别在于 this 声明。 箭头函数没有自己 this 变量; this 在箭头函数中使用时会得到词法解析。...如果您还没有阅读过 JavaScript 作用域,我建议您阅读 这篇文章。 4.

1.1K20

面试官:箭头函数和普通函数区别?箭头函数this指向哪里?

一、箭头函数更直观、简洁 箭头函数为匿名函数 let a = () => {} 有一个参数可省略(),多个的话不能省略(),用 ,号分开 let a = m => {} let b = (m, n...console.log(this, '箭头函数 this 执行环境') // window }, fn2: function () { console.log(this.name.../ undefined console.log(b.prototype); // {constructor: ƒ} 五、箭头函数参数不能用arguments,值是有外围非箭头函数所决定 //...报错 let a = (m) => { console.log(arguments) } a(1,2,3) // arguments is not defined // 值是有外围非箭头函数所决定...函数,不能使用yield关键字 箭头函数this指向为其上下文this,一级一级往上找,直到找到 window 当然箭头函数与普通函数区别还有很多,小编总结也不是很齐全,有想法,请各位看官大大多多交流指正

51930

js箭头函数

箭头函数 箭头函数表达式没有自己this,arguments,super或new.target。...引入箭头函数作用 引入箭头函数作用:更简短函数并且不绑定this 更简短函数 let sum = (x,y,z) => { return x+y+z; } 不绑定this 在箭头函数出现之前,每个新定义函数都有他自己...(在构造函数情况下是一个新对象,在严格模式函数调用为 undefined,如果该函数被作为“对象方法”调用则为基础对象等)。...(箭头函数若用了this,这个this指向包裹箭头函数第一个普通函数 this。) 不绑定arguments 大多数情况下,使用剩余参数是相较于arguments对象更好选择。...yield 关键字通常不能在箭头函数中使用(除非是嵌套在允许使用函数内)。

4.4K10

箭头函数与普通函数区别

指向是动态: 从上面的例子可以看出,fn函数this本应指向window,后面我们通过bind方法将函数this指向改变为了obj对象,所以打印出obj。...【箭头函数】 无论是严格模式还是非严格模式下,this始终指向window: 箭头函数没有自己执行上下文,this指向是在定义函数时就被确定下来箭头函数this,永远指向外层作用域中最接近自己普通函数...this: 从上面的例子可以看出,普通函数fn作为obj属性被调用,谁调用普通函数,那么函数this就指向谁,所以fnthis指向obj。...fn函数内部有一个箭头函数test,test没有自己this,它this指向外层作用域中最接近自己普通函数this,所以testthis也指向obj。...(作为构造函数),this指向被创建出来对象实例: 【箭头函数箭头函数不能当做构造函数来使用: 04 【从arguments对象来看】 【普通函数】 在普通函数,arguments是类数组对象

70320

普通函数箭头函数

一、区别 箭头函数是匿名函数,不能作为构造函数,不能使用new let FunConstructor = () => { console.log('lll'); } let fc = new...Generator函数,不能使用yield关键字 二、JS this指向问题 普通函数this指向在函数定义时候是确定不了,只有函数执行时候才能确定this到底指向谁,实际上this最终指向是那个调用它对象...箭头函数比较特殊没有调用者,不存在this.箭头函数()概念,但是它内部可以有this,而内部this由上下文决定 例子1: var o = { user:"追梦子", fn:function...首先new关键字会创建一个空对象,然后会自动调用一个函数apply方法,将this指向这个空对象,这样的话函数内部this就会被这个空对象替代。...注: 1 .在严格版默认this不再是window,而是undefined。   2. new操作符会改变函数this指向问题。

96140

普通函数箭头函数区别

下面栗子在一个函数定义箭头函数,然后在另一个函数执行箭头函数。...继承于bar函数this指向 } 从上面例子可以得出两点 箭头函数this指向定义时所在外层第一个普通函数,跟使用位置没有关系。...被继承普通函数this指向改变,箭头函数this指向会跟着改变 不能直接修改箭头函数this指向 上个例子foo函数修改一下,尝试直接修改箭头函数this指向。...(全局对象) 唔,这个问题实际上是面试官提出来,当时我认为箭头函数规则就是:箭头函数this指向继承自外层第一个普通函数this,现在看来真是不严谨(少说一个定义时候),要是面试官问我:定义和执行不在同一个普通函数...var func = () => 1; // 报错: Unexpected token => 箭头函数解析顺序相对靠前 MDN: 虽然箭头函数箭头不是运算符,但箭头函数具有与常规函数不同特殊运算符优先级解析规则

83130
领券