js函数编译时机

var x=1;

var y=0;

var z=0;

function add(n){n=n+1;return n;}

y=add(x);

function add(n){n=n+2;return n;};

z=add(x);

结果y=3;z=3;

命名函数是先扫描下函数然后如有相同函数名,则最后一个函数为所执行函数

var x=1;

var y=0;

var z=0;

 var add=function(n){n=n+1;return n;}

y=add(x);

var add=function(n){n=n+2;return n;};

z=add(x);

结果y=2;z=3;

var add=function(n){n=n+1;return n;} 是把一个变量名add指向匿名函数。执行时add指向哪个函数就执行哪个函数。从上向下执行。结果是2,4。所以写程序时最好用匿名函数。

var add=function(n){n=n+1;return n;} //add不是函数的名字,而是指向匿名函数的变量名

y=add(x);//调用add这个变量所指向的函数

原文地址:https://www.cnblogs.com/xjt360/p/3654500.html