在函外部直接调用函数的内部函数是不可以的 ,因为是向外查找的 所以不能直接内部函数
function one() { function two() { var b = 30; } } one(); two();
即使先调用外部函数也不可以
找不到函数
如果要直接调用内部函数可以把函数赋值给一个全局变量
将内部函数值赋给外部定义的全局变量
//定义一个变量名 var b = 20; var a; function one() { function two() { var b = 30; console.log(b); } a = two console.log(b); } //先调用外部函数 one(); //再调用内部函数 a();
或者 直接赋值a也是可以调用的
//定义一个变量名 var b = 20; function one() { a = function () { var b = 30; console.log(b); } console.log(b); } //先调用外部函数 one(); //再调用内部函数 a();
结果都是
编辑
也可以这样调用window.onload里的函数
var a; window.onload = function () { function q() { alert("document") } a = q button = document.getElementsByTagName('button')[0] button.onclick = function () { b() } } function b() { a() }