vue 之 箭头函数与对象的单体模式
箭头函数
基本语法:
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 之 箭头函数与对象的单体模式的更多相关文章
- Vue ES6箭头函数使用总结
Vue ES6箭头函数使用总结 by:授客 QQ:1033553122 箭头函数 ES6允许使用“箭头”(=>)定义函数: 函数不带参数 定义方法:函数名称 = () => 函数体 ...
- Vue学习笔记之Vue的箭头函数
0x00 箭头函数 基本语法: ES6允许使用“箭头”(=>)定义函数 var f = a = > a //等同于 var f = function(a){ return a; } 如果箭 ...
- ES6 -箭头函数 ,对象的函数解构
ES6 -箭头函数: //es6 中的箭头函数和扩展 //es5的写法 // function add(a,b){ // return a + b; // } // add(1,2); //3 fun ...
- Vue学习笔记之Vue的对象单体模式
0x00 对象的单体模式 为了解决箭头函数this指向的问题 推出来一种写法 对象的单体模式 var person = { name:'小马哥', age:12, fav(){ console.log ...
- 严格模式下顶层箭头函数this指向的是全局对象
我们知道普通函数调用,this在非严格模式下指向全局对象,在严格模式下是undefined.那箭头函数呢?我们知道,箭头函数没有自己的this,它的this是最近外层非箭头函数的this,那直接在顶层 ...
- JavaScript箭头函数中的this详解
前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log(" ...
- ES6入门箭头函数
箭头函数: 箭头函数可以与变量结构相结合(箭头函数返回对象的时候必须要在对象外边加()) 注意: 1️⃣函数体内的this是定义时所在的对象,而不是使用时的对象 2️⃣不可以当成构造函数,不可用new ...
- ES6学习--箭头函数
1. 箭头函数基本形式 let func = (num) => num; let func = () => num; let sum = (num1,num2) => num1 + ...
- ES6 — 箭头函数
一 为什么要有箭头函数 我们在日常开发中,可能会需要写类似下面的代码 const Person = { 'name': 'little bear', 'age': 18, 'sayHello': fu ...
随机推荐
- 2018.7.30 Designing a Qi-compliant receiver coil for wireless power systems
1) 找资料: http://www.mouser.cn/datasheet/2/389/stwlc33-1156583.pdf https://training.ti.com/wireless-po ...
- Leetcode 974. Subarray Sums Divisible by K
前缀和(prefix sum/cumulative sum)的应用. 还用了一个知识点: a≡b(mod d) 则 a-b被d整除. 即:a与b对d同余,则a-b被d整除. class Solutio ...
- MySQL学习之一数据库简介
1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,长期储存在计算机内.有组织的.可共享的数据集合. 数据库中的数据指的是以一定的数据模型组织.描述和储存在一起. ...
- XML的语法
XML的语法 文档声明: 写法 <?xml version="1.0" ?> 文档声明必须出现在xml文件的第一行和第一列的位置 属性: version="1 ...
- UVALive - 3490 Generator (AC自动机+高斯消元dp)
初始有一个空串s,从前n个大写字母中不断随机取出一个字母添加到s的结尾,出现模式串t时停止,求停止时s的长度期望. 这道题解法不唯一,比较无脑的方法是对模式串t建一个单串AC自动机,设u为自动机上的一 ...
- VMware12版虚拟机怎么安装win7系统(详细教程
转自:http://jingyan.baidu.com/article/cd4c29791fcf1b756e6e6034.html VMware12版虚拟机怎么安装win7系统(详细教程) 现 在很多 ...
- LeetCode 369. Plus One Linked List
原题链接在这里:https://leetcode.com/problems/plus-one-linked-list/ 题目: Given a non-negative number represen ...
- BZOJ2120:数颜色(莫队版)
浅谈莫队:https://www.cnblogs.com/AKMer/p/10374756.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?i ...
- Proxmox qm命令应用实例
1) 把一个物理硬盘增加到VM上qm set 105 --virtio1 /dev/sdb <-- 表示把/dev/sdb物理硬盘以 virtio 接口类型增加至 105 的 ...
- 差分IO标准
差分标准 和单端IO不同的是,差分电平使用两根信号线来传达信号,这两根信号线在传输过程中如果遇到同样的噪声源(共模噪声)干扰,在接收端,这样的共模噪声会在两个信号相减时消除,这样并不会给接收电平造成影 ...