箭头函数

基本语法:

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对象,就是定义时所在的对象,而不是使用时所在的对象。

var name = '张三';
var person = {
name:'丫丫',
age:18,  
fav:function(){
console.log(this)
console.log(this.name)
}
} 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('逛街','看电影'); 

报出如下❎:

 

对象的单体模式

为了解决箭头函数this指向的问题 推出来一种写法 对象的单体模式

var person = {
2 name:'丫丫',
3 age:12,
4 fav(){
5 console.log(this.name,this.age);
6 }
7 }
8 person.fav();

  

vue 之 箭头函数与对象的单体模式的更多相关文章

  1. Vue ES6箭头函数使用总结

    Vue ES6箭头函数使用总结   by:授客 QQ:1033553122   箭头函数 ES6允许使用“箭头”(=>)定义函数: 函数不带参数 定义方法:函数名称 = () => 函数体 ...

  2. Vue学习笔记之Vue的箭头函数

    0x00 箭头函数 基本语法: ES6允许使用“箭头”(=>)定义函数 var f = a = > a //等同于 var f = function(a){ return a; } 如果箭 ...

  3. ES6 -箭头函数 ,对象的函数解构

    ES6 -箭头函数: //es6 中的箭头函数和扩展 //es5的写法 // function add(a,b){ // return a + b; // } // add(1,2); //3 fun ...

  4. Vue学习笔记之Vue的对象单体模式

    0x00 对象的单体模式 为了解决箭头函数this指向的问题 推出来一种写法 对象的单体模式 var person = { name:'小马哥', age:12, fav(){ console.log ...

  5. 严格模式下顶层箭头函数this指向的是全局对象

    我们知道普通函数调用,this在非严格模式下指向全局对象,在严格模式下是undefined.那箭头函数呢?我们知道,箭头函数没有自己的this,它的this是最近外层非箭头函数的this,那直接在顶层 ...

  6. JavaScript箭头函数中的this详解

    前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log(" ...

  7. ES6入门箭头函数

    箭头函数: 箭头函数可以与变量结构相结合(箭头函数返回对象的时候必须要在对象外边加()) 注意: 1️⃣函数体内的this是定义时所在的对象,而不是使用时的对象 2️⃣不可以当成构造函数,不可用new ...

  8. ES6学习--箭头函数

    1. 箭头函数基本形式 let func = (num) => num; let func = () => num; let sum = (num1,num2) => num1 + ...

  9. ES6 — 箭头函数

    一 为什么要有箭头函数 我们在日常开发中,可能会需要写类似下面的代码 const Person = { 'name': 'little bear', 'age': 18, 'sayHello': fu ...

随机推荐

  1. fakeroot: preload library `libfakeroot.so' not found, aborting.

    /**************************************************************************** * fakeroot: preload li ...

  2. 使用range()生成自然数序列

  3. CommonJS 规范

    CommonJS 是以在浏览器环境之外构建 JavaScript 生态系统为目标而产生的项目,比如在服务器和桌面环境中. 这个项目最开始是由 Mozilla 的工程师 Kevin Dangoor 在2 ...

  4. http之206状态码

    206状态码, 大概就是浏览器先不下载要下载的文件,而是弹窗告诉用户,该文件是什么,有多大.由用户自行决定是否下载. 在html中,加一个a标签,a标签的地址是一个文件,就可实现该效果. 具体可参考下 ...

  5. laravel 判断上传文件的类型和后缀

    学习源头: https://blog.csdn.net/ddjjll8877/article/details/52249965 class FileUpdateController extends B ...

  6. Python学习笔记 - PostgreSQL的使用

    一.安装PostgreSQL模块 pip install psycopg2 有时候会失败,多安装2次就好了(我是第二次成功了). 二.数据库连接接口 由于Python统一了数据库连接的接口,所以psy ...

  7. JavaScript 中事件绑定的三种方式

    以下是在 JS 中事件绑定的三种方式.   1. HTML onclick attribute     <button type="button" id="uplo ...

  8. CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (三)

    配置过程中遇到的错误与查看日志 以下错误是在服务正常开启的情况下发生的,请先查看服务是否正常启动. 一.错误 1. rsync: failed to set times on "." ...

  9. mysql添加用户

    增加新用户: 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 例1.增加一个用户test1密码为abc,让他可以在任 ...

  10. List的使用1(两张表或者一张表的自身关系)

    第一,在Model中 首先,在视图Model(GZUModel)中定义一个SelectListItem集合 public List<SelectListItem> AList { get; ...