閉包函數,易混知識點

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

相關文章
相關標籤/搜索