A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > javascript嵌套函数和在函数内调用外部函数的区别分析

javascript嵌套函数和在函数内调用外部函数的区别分析

时间:2016-02-01 08:56作者:fang人气:30

我们都知道在函数中定义的局部变量在声明他的函数体以及其嵌套的函数内始终是有定义的,并且在函数的作用域链上始终会有个对象指向全局对象,使函数能够访问到全局变量。

var ga = 'global';

var func = function() {

var la = 'local';

return function() {

return function()

{

return function()

{

alert(la);alert(ga);

}

}

}

}

a = func();

a()()();// 弹出 local 和 global

那么在外部定义的函数A, 被函数B在函数体内调用时,A能访问到B中定义的局部变量吗?答案是否定的,把上面的例子稍作修改如下

var ga = 'global';

function repeat() {

alert(la);

}

var func = function() {

var la = 'local';

alert(1);

repeat();

alert(2);

};

func();

上面的运行结果是只弹出了1,在调用repeat的时候,因为访问了未定义变量js解释器就报错把程序中断了。

原因是函数在定义时保存了一个作用域链,repeat函数在外部定义,在他的作用域中并没有一个局部变量叫la,继续在全局作用域查找也没找到la所以就会报错。

所以嵌套函数和在函数内嵌套调用外部函数还是有很大区别的。

标签javascript,嵌套,函数,和在,调用,外部,区别,分

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号