JS - 箭头函数与 () {} 的作用域

foo () {

// ...

}

等价于

foo: function () {

// ...

}

foo: () => {

// ...

}

范例:

// 全局

name = ‘zhangsan‘

const a = {

name: ‘lisi‘,

sayName () {

console.log(this.name)

}

}

const b = {

name: ‘wangwu‘,

sayName: () => {

console.log(this.name)

}

}

a.sayName()  // lisi

b.sayName() // zhangsan

时间: 2024-10-17 22:24:18

JS - 箭头函数与 () {} 的作用域的相关文章

JS箭头函数的优势在哪里

译者按: 看上去只是语法的变动,其实也影响了this的作用域. 原文: JavaScript: Arrow Functions for Beginners 译者: Fundebug 为了保证可读性,本文采用意译而非直译.本文我们介绍箭头(arrow)函数的优点. 更简洁的语法 我们先来按常规语法定义函数: function funcName(params) { return params + 2; } funcName(2); // 4 该函数使用箭头函数可以使用仅仅一行代码搞定! var fu

js 箭头函数

箭头函数 ES6标准新增了一种新的函数:Arrow Function(箭头函数). x => x * x相当于: function (x) { return x * x; }箭头函数相当于匿名函数,并且简化了函数定义.箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ ... }和return都省略掉了.还有一种可以包含多条语句,这时候就不能省略{ ... }和return: x => { if (x > 0) { return x * x; } else { return - x

js(=>) 箭头函数 详细解说 案例大全

ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义.箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ ... }和return都省略掉了.还有一种可以包含多条语句,这时候就不能省略{ ... }和return: x => { if (x >

vue2.0函数(箭头函数)的this作用域

在做vue项目时用到了axios,但是发现axios请求之后的回调函数里this并不指向当前vue实例,从而导致浏览器报错. 出错代码及结果: created : function(){ axios.get('static/data.json').then(function(res){ console.log(this) //undefined this.user = res.data.user }) } (报错截图) 普通函数代码改版(正确): created : function(){ va

Node.js 箭头函数

格式: => (读作:goesto) 左边是参数,右边是方法体 演变:function f(x,y) {} -----> 演变成箭头函数 (x, y) => {} 语法格式简单 箭头函数的几种形式: 没有参数 () => console.log("hello"); 有一个参数 a => ++a; 有多个参数 (a,b) => a + b; 方法体有多条语句 (a,b) => { a=1; b=2; console.log(a+b)}; 箭头函数

JS箭头函数的this

箭头函数的this看定义他的时候,他的外层有没有函数 有:外层函数的this就是箭头函数的this 无:箭头函数的this就是window obj = {age:18, getAge: ()=>console.log(this.age)} obj.getAge() //undefined 定义的时候外层没有函数,指向window obj = {age:18, getAge: function(){print = ()=>console.log(this.age); print()}} obj.

JS中函数的词法作用域

在javascript中,每一个函数都拥有自己的词法作用域.简单理解就是,每个函数在被定义(注意不是调用!)时,都会创建一个属于自己的环境(作用域). 比如, function foo(){ var a = 1; foo2(); } function foo2(){ console.log(a); }fon(); 运行结果: ReferenceError: fon is not defined. 因为,函数foo2在被定义时,它可以访问的环境只有全局作用域和它自己的函数作用域,并不能访问到函数f

js 箭头函数返回undefined;

由于本人是写java的,lambda在Java中是不用写return是会编译报错的. 要么去掉中括号,要么写return: 而在js中,则不报错,打印出来的值是undefined console.log(reqAddress("40.10038,116.36867"))===undefined. 其中ajax函数返回一个Promise. 虽然Java很繁琐,但是很多语法问题在编译阶段就解决了,算是编译型语言的好处吧 原文地址:https://www.cnblogs.com/imjami

[译]ES6箭头函数和它的作用域

原文来自我的前端博客: http://www.hacke2.cn/arrow-functions-and-their-scope/ 在ES6很多很棒的新特性中, 箭头函数 (或者大箭头函数)就是其中值得关注的一个! 它不仅仅是很棒很酷, 它很好的利用了作用域, 快捷方便的在现在使用以前我们用的技术, 减少了很多代码……但是如果你不了解箭头函数原理的话可能就有点难以理解. 所以,让我们来看下箭头函数, 就是现在! 执行环境 你可以自己去学习和尝试下, 你可以简单的把示例程序代码复制到你的浏览器控制