日常题目第一篇

说下最近刚刚遇到的一些小题目是关于函数的传递,以及对象赋值等一些方面。

发下题目:

var ftn1 =function(){

console.log("test:ftn1");

};

var ftn2 =function(){

console.log("test:ftn2");

};

function ftn(f){

f();

f=ftn2;

}

ftn(ftn1);//运行结果:test:ftn1console.log("====================华丽的分割线======================");

ftn1();//运行结果:test:ftn1

题目就是上面的那个,一开始没有深入理解,纠结了一段时间,了解了器本身。

说下我的理解:首先进行预解析,然后进行,调用ftn(ftn1),ftn1作为一个实参,然后找到ftn(f),然后进行f()的调用,也是fn1()的调用,找到fn1()打印出了test:fn1,那么迷惑点在于f=ftn2,ftn2仅仅是把ftn2的值赋值给了f,但是在ftn(f)执行完毕,f就会自动销毁,本身参数就作为一个局部变量,所以不会去影响全局。

说的有点乱,理解层次还不够。忘多多指点。如有不对,望赐教!告辞。

对了把那个大神的博客地址写下浅谈javascript语法

你可能感兴趣的:(日常题目第一篇)