JavaScript函數——更深入的窺探

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>函數--更深入的窺探</title>
		<script type="text/javascript">
			window.onload = function () {
				//函數和匿名函數
				var prison = function() {
					console.log('prison called!');
				}
				prison()
				
				/*************************************/
				
				//自動執行匿名函數
				(function() {
					console.log('private');//輸出 private
				})();
				
				
				
				//匿名函數傳參
				(function(what_to_eat) {
					var sentence = 'I am going to eat a ' + what_to_eat;
					console.log(sentence);
				})('sandwich');
				
				
				
				
				/*
				 	模塊模式
				 * */
				
				var prison = (function () {
					var prisoner_name = 'Mike';
					var jail_term = '20 year term';
					
					return {
						prisoner : prisoner_name + '-' + jail_term,
						sentence : jail_term
					};
				})();
				console.log(prison.prisoner_name);//undefined
				console.log(prison.prisoner)//Mike-20 year term
				console.log(prison.sentence);//20 year term
				//上面代碼中prison.prisoner和prison.sentence的值是不能更改的
				
				
				//修改後的代碼
				var prison = (function () {
					var prisoner_name = 'Mike';
					var jail_term = '20 year term';
				
					return {
						prisoner : function(){
							return prisoner_name + '-' + jail_term;
						},
						sentence : function() {
							return jail_term;
						}
					};
				})();
				//通過匿名函數返回的對象上的方法來訪問,不能通過該對象或者原型上直接訪問
				console.log(prison.prisoner())//Mike-20 year term
				console.log(prison.sentence())//20 year term
				
				//期待下一講“閉包”
			}
		</script>
	</head>
	<body>
	</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章