博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue学习笔记之Vue的箭头函数
阅读量:5091 次
发布时间:2019-06-13

本文共 1399 字,大约阅读时间需要 4 分钟。

 

0x00 箭头函数

基本语法:

ES6允许使用“箭头”(=>)定义函数

var f = a = > a//等同于var f = function(a){   return a;  }

如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。

//无形参var f = () => 5;// 等同于var f = function () { return 5 };//多个形参var sum = (num1, num2) => num1 + num2;// 等同于var sum = function(num1, num2) {  return num1 + num2;};

 

使用箭头函数注意点:

箭头函数有几个使用注意点。

(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

  

1  var name = '张三';    2  var person = { 3         name:'小马哥',            age:18,   4         fav:function(){         5             console.log(this) 6             console.log(this.name) 7         } 8     } 9 10     person.fav();

我们发现,打印的结果为

此时this指向的是使用它的对象,也就是person对象

var person2 = {    name:'小马哥',    age:18,    fav: ()=>{         // 当前this指向了定义时所在的对象(window)         console.log(this);      }    } person2.fav();

打印的结果:

使用箭头函数,它表示定义时所在的对象window。

再看一个例子吧!

function foo() {  setTimeout(() => {    console.log('id:', this.id);  }, 100);}var id = 21;foo.call({ id: 42 });// id: 42

上面代码中,setTimeout的参数是一个箭头函数,这个箭头函数的定义生效是在foo函数生成时,而它的真正执行要等到 100 毫秒后。如果是普通函数,执行时this应该指向全局对象window,这时应该输出21。但是,箭头函数导致this总是指向函数定义生效时所在的对象(本例是{id: 42}),所以输出的是42

(2)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

var person3 = {             name:'小马哥',             age:18,             fav: ()=>{                 console.log(argument);             }         }         person3.fav('把妹','把爷');

报出如下❎:

 

 

转载于:https://www.cnblogs.com/JetpropelledSnake/p/9450703.html

你可能感兴趣的文章
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>
无人值守安装linux系统
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>