• JavaScript箭头函数


    ES6中新增的定义函数的方式

    基础语法

    语法                        

    ()=>{}//():函数=>:必须的语法,指向代码块{}:代码块Const myFun=()=>{};//把函数赋值给myFun
    

    举例

    1. //原js写法
    2. function myFun(k,v){
    3. return k+v;
    4. }
    5. //es6 写法
    6. const myFun1 = (k,v) =>{
    7. return k+v;
    8. }
    9. console.log(myFun(1,2));
    10. onsole.log(myFun1(10,20));
    1. function sum(a,b){
    2. return a+b;
    3. }
    4. sum(1,2);
    5. //1.箭头函数的写法
    6. const sum = (a,b)=>{
    7. return a+b;
    8. }
    9. let res = sum(1,2);
    10. console.log(res);
    11. //2.箭头函数
    12. //代码块注意一句话省略{}和return
    13. const sum = (a,b)=> a+b;
    14. let res = sum(1,2);
    15. console.log(res);
    16. //3.只有一个参数 小括号可以忽略
    17. const sum = a => a+3;
    18. let res = sum(1);
    19. console.log(res);

                                        

    1.全局函数的this

    1.1普通函数this 跟调用者有关

    1. function global(){
    2. console.log(this);
    3. }
    4. global();

    1.2箭头函数的this 箭头函数this this静态 根据上下文的this

    1. const global = ()=>{
    2. console.log(this);
    3. }
    4. global();

    2.对象方法里面的this

    1. const Person = {
    2. realname:'张三',age:19,
    3. say:function(){
    4. console.log(this);
    5. }
    6. }
    7. Person.say();//Person实例

    2.2对象箭头函数的this

    1. const Person = {
    2. realname:'张三',age:19,
    3. say:()=>{
    4. console.log(this);
    5. }
    6. }
    7. Person.say();//windows

    3.构造函数的this 构造函数的this就是当前实例

    箭头函数的this一旦定义了就不允许改变

    1. function Person(realname,age){
    2. this.realname = realname;
    3. this,age = age;
    4. this.say = ()=>{
    5. console.log(this);//这个this不会 当时new 实例是谁就是谁
    6. }
    7. this.say1 = function(){
    8. console.log(this);
    9. }
    10. }
    11. const P1 = new Person('张三',19);
    12. const P2 = new Person('王武',20);
    13. P1.say.call(P2);
    14. P1.say1.call(P2);

    示例 

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>title>
    6. head>
    7. <body>
    8. <button type="button" id="btn">未点击button>
    9. <script type="text/javascript">
    10. let btnObj = document.querySelector('#btn');
    11. let flag =false;
    12. btnObj.addEventListener('click',function(){
    13. flag = !flag;
    14. if (flag) {
    15. setTimeout(()=>{
    16. console.log(this);
    17. this.innerText = '已点击';
    18. },1000)
    19. }else{
    20. this.innerText = '未点击';
    21. }
    22. })
    23. script>
    24. body>
    25. html>

  • 相关阅读:
    【JavaSE】图书管理系统之MySQL版本
    Ruby on Rails 实践:课程导读
    Opencv进行图像处理基础模板
    西门子PLC-224XP国产替代详细软硬件方案(附全套方案下载链接!)
    conda取消自动进入base环境
    【文件传输】查找等相关命令
    STM32中SPI通信的完整C语言代码范例
    磷酸除杂回用去除铁、铝、氟
    90---Python 直角坐标系下绘制椭圆形
    风储VSG-基于虚拟同步发电机的风储并网系统Simulink仿真
  • 原文地址:https://blog.csdn.net/m0_68633696/article/details/125891996