鍍金池/ 問答/HTML/ 求大佬幫解答 js這個(gè)參數(shù)傳遞的問題

求大佬幫解答 js這個(gè)參數(shù)傳遞的問題

var pow2 = make_pow(2);說明把參數(shù)n=2傳進(jìn)去了,可是為什么打印出來pow2時(shí),參數(shù)n沒有被賦值?
圖片描述

回答
編輯回答
使勁操

你的make_pow返回的就是一個(gè)函數(shù),在JS中,函數(shù)也是對象,所以可以作為返回值。你要得到正確結(jié)果得這樣:

var pow2=make_pow(2);
console,log(pow2(3)); // 9

至于pow2為什么能夠保存n的值,則是涉及到閉包問題了。

2017年9月12日 05:23
編輯回答
青黛色

我的理解:console.log是打印出引用的字符串形式,而且沒有運(yùn)行pow2,參數(shù)此時(shí)是形參。而你想要的賦值是指運(yùn)行時(shí)發(fā)生的。

2018年4月23日 10:44
編輯回答
單眼皮

打印出來的是個(gè)函數(shù),該函數(shù)是什么就打印什么,不會(huì)根據(jù)上下文的環(huán)境自動(dòng)賦值,一個(gè)簡單直觀的例子:

let a = 3;
function fun(){
    return a
}
// 打印出來肯定是 'func(){return a}'
// 即使我們知道a值是3,但是機(jī)器并不知道,要等到運(yùn)行的時(shí)候,分析作用域,上下文,才知道要輸出什么
console.log(fun)
2017年2月15日 09:05
編輯回答
涼汐
var pow2=make_pow(2);//pow2是個(gè)function
//如果調(diào)用,則應(yīng)該這樣:
pow2();
2018年4月16日 15:59