js回調函數原理解析


回調函數的定義是指函數作為參數在執行中進行值傳遞,搞清楚原理之前先明白兩件事
//1、基本類型值傳遞
//在函數接收基本類型值時,會在該函數內部棧中創建一個一模一樣的變量,且兩個參數互不影響,為了驗證這一正確性,如下
function fun(a) {
        a = 666
        console.log(a) //666
    }
    var num = 555
    fun(num)
    console.log(num) //555
//2、引用類型值傳遞
//當引用類型作為參數傳遞時,傳遞到函數內部的不是該參數的值,而是該參數在內存中的引用地址,這和引用類型的定義完全吻合。
//所以當其中一個參數修改時,另一個值的引用地址頁發生了改變。如下
 function fun1(obj) {
        obj.name = '王二'
        obj.age = 20
        console.log(obj)
    }
    var o = {
        name: '張三',
        age: 18
    }
    fun1(o)
    console.log(o) //{name:'王二',age:20}
 //以上兩個案例說明后,就不難理解回調函數了,function作為引用類型傳遞到目標函數中,當我們在目標函數中把參數作為function的入參傳過去時,
 //我們在調用afun()時,就可以取到內部的結果了
 function afun(are, callback) { //目標函數
        are++
        callback(are)
    }
    var d = 2
    afun(d, function(res) {
        console.log(res) //3
    })


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM