闭包函数,易混知识点

var outer = 'outer';
var copy;
function outerFn(){
	var inner = 'inner';
	function innerFn(param){
		console.log(param);
	}
	copy = innerFn;
}
outerFn();
copy('copy');

在全局中定义变量,在函数中赋值函数,须要将函数运行以后,被赋值函数才能有用。javascript

上面程序输出,copy,但若是把outerFn();去掉就会报错:Uncaught TypeError: copy is not a function,由于这个函数尚未被定义,仍是undefined;java

相关文章
相关标签/搜索