1. 程式人生 > 其它 >Java JUC併發之synchronized與Lock的區別

Java JUC併發之synchronized與Lock的區別

箭頭函式與普通函式的區別

    // 普通函式
    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指向誰
    */