vue中箭头函数和普通函数的区分(同时和java做对比)

server/2024/9/23 14:30:36/

目录

  • 定义和使用
  • this的不同
  • VUE中箭头函数和普通函数的用处
    • 和Java类部类的区别

定义和使用

首先要在脑子里划分
1.定义时
2.使用时

this的不同

script

箭头函数:定义时确定,不变
普通函数:使用时确定,改变
比如定时器,最后是windows调用的,写普通函数就会读取不到一些内部参数

例子:

javascript">var name = '张三'var person = {name:'李四',           age:18,fav:function(){console.log(this)console.log(this.name)}}
person.fav();
// this      为 person
// this.name为 "李四"
//person.fav(); 是person使用所以this为person
javascript">var name = '张三'var person = {name:'李四',age:18,fav: ()=>{console.log(this)console.log(this.name)}}
person.fav();
// this      为 Window
// this.name 为 "张三"
// person.fav(); 是person使用,但是箭头函数以定义为准,定义时fav在一个集合中,这个集合属于window所以this为window

看上面例子时请划分为使用和定义两个阶段

java_47">java

js中箭头函数和java中lambda表达式有些像

lambda表达式: 和箭头函数类似
普通函数: java中谁定义,就是谁的this,所以一般不会变化

VUE中箭头函数和普通函数的用处

箭头函数和普通函数一般在函数里面有函数,也就是函数返回值作为参数的时候/区别很大

函数(外函数)中有函数(内函数),内函数想访问外函数所在this的参数,使用普通函数是不行的
如下

javascript">const vm = new Vue({el:"#root"data:{a:1},method:{Test01(){//这里的this为vmTest02(){//是Test01调用了Test02,所以这里访问不了this.a}//-------------分割线----------------()=>{//不用管谁调用了,定义的地方在vm,这里可以访问this.a}}}
})

上面这样写肯定不行,只是便于理解,如果下函数放到定时器里呢。

javascript">const vm = new Vue({el:"#root"data:{a:1},method:{Test01(){setInterval(()=>{()=>{//这里可以访问this.a//如果你无需访问this.a就可以换为普通函数},16})}}
})

由于定时器是window调用,所以想要this指向vm,只能使用箭头函数,在定义时决定好this

和Java类部类的区别

JavaScript中的内部函数无法直接访问外部函数的局部变量,而Java中的内部类可以访问外部类的成员。
JavaScript中的内部函数通过闭包可以间接访问外部函数的局部变量,而Java中的内部类可以直接访问外部类的成员。


http://www.ppmy.cn/server/40464.html

相关文章

Flume进阶

目录 第1关:拦截器的使用 第2关:自定义拦截器 第1关:拦截器的使用 代码文件: # Define source, channel, sink #agent名称为a1# Define source #source类型配置为avro,监听8888端口,后台会自动发送数据到该端口 #拦截后…

英语学习笔记7——Are you a teacher?

Are you a teacher? 你是教师吗? 词汇 Vocabulary name /neɪm/ n. 名字,名声 英文名字构成: 名 字 姓      given name family name  也叫做:first name last name      例:Yanyan Gao 例句&#xff1…

HTTP 结构概述

Web 客户端和服务器 Web 内容都是存储在 Web 服务器上的,Web 服务器所使用的是 HTTP 协议,因此经常被称为 HTTP 服务器,HTTP 服务器存储了因特网的数据。客户端向服务器发送 HTTP 请求,服务器会在 HTTP 响应中返回请求的数据。最…

Vue从入门到精通-13-Vue-router路由

什么是路由 后端路由 对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源。 当前端输入url请求资源时,服务器会监听到是什么url地址,那后端会返回什么样的资源呢?后端这个处理的过程就…

机器学习理解梯度

一、在机器学习领域,模型的参数是指在训练过程中需要学习的变量,例如神经网络中的权重和偏置。这些参数的调整是通过优化算法来实现的,而梯度是这个优化过程中的关键概念之一。 二、模型参数之间的差异通常不直接称为梯度,而是用…

git 常用命令及注释

一、 常用的git命令 git clone 克隆代码 git log 查看日志 git tag 查看标签 git branch 查看分支 git branch -a 查看远程分支 git pull 拉取 2 初始化配置 git config --global user.name 查看用户名git config --global user.name "serena" …

【机器学习数据可视化-04】Pyecharts数据可视化宝典

一、引言 在大数据和信息爆炸的时代,数据可视化成为了信息传递和展示的关键手段。通过直观的图表和图形,我们能够更好地理解数据,挖掘其背后的信息。Pyecharts,作为一款基于Python的数据可视化库,凭借其丰富的图表类型…

java可变参数

前言 我们虽然能够用重载实现,但多个参数无法弹性匹配 代码 class mycalculator{//下面的四个calculate方法构成了重载//计算2个数的和,3个数的和,4,5,6个数的和// public void calculate(int n1){// System.out.…