箭头函数与普通函数的区别

箭头函数与普通函数的区别

    // 普通函数
    function fun() {
        return 100
    }
    const fn = function () {
        return 100
    }

    // 箭头函数
    const fn1 = () => 100

    /*
        箭头函数
        ()中定义参数,如果只有一个参数,可以不写括号
        {}中写函数体,如果函数体重只有返回值,可以不写return
    */

    // 普通函数
    let obj = {
        name: "小明",
        age: 2,
        sayName() {
            console.log(`我是${this.name}`)
        }
    }
    obj.sayName() // 我是小明

    // setTimeout 
    let obj = {
        name: "小明",
        age: 2,
        sayName() {
            setTimeout(function () {
                console.log(`我是${this.name}`)
            }, 500);
        }
    }
    obj.sayName() // 我是 
                  // setTimeout中this指向window
    
    // 箭头函数
    let obj = {
        name: "小明",
        age: 2,
        sayName() {
            setTimeout(() => {
                console.log(`我是${this.name}`)
            }, 500);
        }
    }
    obj.sayName() // 我是小明
    
    /*
    箭头函数和普通函数的区别:
    1. this指向不同
    2. 普通函数,谁调用这个函数,this指向谁
    3. 箭头函数,在哪里定义函数,this指向谁
    */
posted @ 2021-07-20 17:48  `Duet`  阅读(41)  评论(0编辑  收藏  举报