哎呀,是我想多了好像,我運行回調函數,和調用test 方法似乎是一個道理 。。。呃嗷嗷,好像是我想多了,和調用函數應該是一個道理,fun其實只是報存了對方法的指針,方法在堆中。為什么js回調函數依然可以調用定義時用到的變量var that = this;var test = function () { console.log(that);}var page = function(fun) { fun();//運行回調函數 test();//運行test函數}var xiaoming = { name : '小名', watch() { let that = this; //向page傳遞我的回調函數 page(function(){ console.log(that); }) }}xiaoming.watch();test函數 和 往page里面?zhèn)鬟f的回調函數 一樣的代碼page中運行 回調函數 和 test函數那么問題來了為什么 test()//打印出window,我知道但是為什么同樣的代碼function(){ console.log(that);}回調函數 能打印出 xiaoming 這個對象運行 回調函數 的方式是有什么特別的地方嗎?我目前的理解是,當我把函數作為參數傳遞到另一個函數的時候, 會把我的作用域一起傳遞, page(function(){ console.log(that); })會把 that也以前傳遞嗎。。。我好蒙蔽呀
js 回調函數 為什么可以獲取原來所在的變量
一只名叫tom的貓
2019-01-30 21:10:47