說下最近剛剛遇到的一些小題目是關(guān)于函數(shù)的傳遞,以及對(duì)象賦值等一些方面。
發(fā)下題目:
var ftn1 =function(){
console.log("test:ftn1");
};
var ftn2 =function(){
console.log("test:ftn2");
};
function ftn(f){
f();
f=ftn2;
}
ftn(ftn1);//運(yùn)行結(jié)果:test:ftn1console.log("====================華麗的分割線======================");
ftn1();//運(yùn)行結(jié)果:test:ftn1
題目就是上面的那個(gè)涡拘,一開始沒有深入理解,糾結(jié)了一段時(shí)間定硝,了解了器本身晨雳。
說下我的理解:首先進(jìn)行預(yù)解析,然后進(jìn)行,調(diào)用ftn(ftn1),ftn1作為一個(gè)實(shí)參,然后找到ftn(f)紧卒,然后進(jìn)行f()的調(diào)用,也是fn1()的調(diào)用,找到fn1()打印出了test:fn1,那么迷惑點(diǎn)在于f=ftn2侥衬,ftn2僅僅是把ftn2的值賦值給了f,但是在ftn(f)執(zhí)行完畢,f就會(huì)自動(dòng)銷毀,本身參數(shù)就作為一個(gè)局部變量,所以不會(huì)去影響全局。
說的有點(diǎn)亂,理解層次還不夠。忘多多指點(diǎn)轴总。如有不對(duì)直颅,望賜教!告辭怀樟。
對(duì)了把那個(gè)大神的博客地址寫下淺談javascript語(yǔ)法