开发者社区> felenwe> 正文

node.js学习笔记(24) 箭头函数

简介: 箭头函数,是ES6的新特性,Node.js从v5.4.0开始支持。
+关注继续查看

11月下旬,我安装了Node.js-v5.1.0开始学习和使用Node.js。

然而Node.js开发团队在12月发布了v5.1.1,v5.2.0,v5.3.0,16年1月又发布了v5.4.0,v5.4.1,v5.5.0。这速度,是要坐火箭才能赶上呀……


言归正传,第一次看到"=>"这个符号是在v5.4.0的api文档中。文档中频繁出现这样的代码示例:

()=>{
...
}

通过查Node.js的更新说明得知,这就是箭头函数,是ES6的新特性,Node.js从v5.4.0开始支持。


那么我们先来跟传统函数对比学习一下箭头函数的语法吧!

1、没有参数的情况

传统函数:


var funcWithoutParam = function(){
    console.log('This is a function without param.');
}


箭头函数:


var funcWithoutParam = () => {
    console.log('This is a function without param.');
}

2、单个参数的情况

传统函数:


var funcWithOneParam = function(a){
    console.log('This is a function with a param: a='+a);
}


箭头函数:


var funcWithOneParam = a => {
    console.log('This is a function with a param: a='+a);
}

3、多个参数的情况

传统函数:


var funcWithThreeParam = function(a, b, c){
    console.log('This is a function with 3 params: a='+a +', b='+b+', c='+c );
}

箭头函数:


var funcWithThreeParam = (a, b, c) => {
    console.log('This is a function with 3 params: a='+a +', b='+b+', c='+c );
}

4、匿名函数

传统函数:


function(){
    console.log('This is a no name function.');
}

箭头函数:


() => {
    console.log('This is a no name function.');
}

箭头函数是ES6的新特性,它一定不是function的简单替代品,它们有哪些区别呢?

1、箭头函数不能用new来实例化

2、没有arguments对象

3、this不再善变


关于第3点,我们可以举个栗子。

传统函数的this很善变,作用域仅限与当前函数:

man = {
    name:'lee',
    init:function(){
        var self = this;
        var printName = function() {
            console.log(self.name);
        }
        printName();
    }
}
man.init();


箭头函数this取决于在哪儿定义,不可变:
man = {
    name:'lee',
    init:function(){
        var printName = () => {
            console.log(this.name);
        }
        printName();
    }
}
man.init();


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【学习笔记】黑马程序员Node.js全套入门教程 | 基础篇
最近要写一些npm命令发现文件读写和路径API忘记了,索性直接复习了一遍NodeJS,边学边忘真的痛苦。
60 0
前端技术-vscode 使用 node.js 问题说明 | 学习笔记
简介:快速学习前端技术-vscode 使用 node.js 问题说明
36 0
搭建 node.js 运行环境 | 学习笔记
快速学习搭建 node.js 运行环境
53 0
结合 Node 手写 JSONP 服务器剖析 JSONP 原理|学习笔记
快速学习结合 Node 手写 JSONP 服务器剖析 JSONP 原理
53 0
node.js 中模块的分类|学习笔记
快速学习 node.js 中模块的分类
46 0
结合Node手写JSONP服务器剖析JSONP原理|学习笔记
快速学习结合Node手写JSONP服务器剖析JSONP原理
53 0
node.js 中单线程—非阻塞 IO 解释|学习笔记
快速学习 node.js 中单线程—非阻塞 IO 解释
111 0
node.js 开发网站和传统PHP等开发网站的区别|学习笔记
快速学习 node.js 开发网站和传统PHP等开发网站的区别
74 0
node.js 安装和配置|学习笔记
快速学习 node.js 安装和配置
79 0
node.js特点|学习笔记
快速学习 node.js 特点
39 0
+关注
felenwe
不积跬步无以至千里
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于 Node.js 内核的企业级性能解决方案
立即下载
穆客带你快速定位 Node.js 内存泄露
立即下载
egg—— 企业级 Node 框架
立即下载