JS中this的應用以及源碼練習

解析器在調用函數每次都會向函數內部傳遞進一個隱含的參數,
這個隱含的參數就是this,this指向的是一個對象,
這個對象我們稱爲函數執行的 上下文對象,
根據函數的調用方式的不同,this會指向不同的對象

1.以函數的形式調用時,this永遠都是window
2.以方法的形式調用時,this就是調用方法的那個對象


			function fun(){
				//console.log("a = "+a+", b = "+b);
				console.log(this.name);
			}
			
			//fun();
			
			//創建一個對象
			var obj = {
				name:"孫悟空",
				sayName:fun
			};
			
			var obj2 = {
				name:"沙和尚",
				sayName:fun
			};
			
			//console.log(obj.sayName == fun);
			var name = "全局的name屬性";
			//obj.sayName();
			//以函數形式調用,this是window
			//fun();
			
			//以方法的形式調用,this是調用方法的對象
			//obj.sayName();
			obj2.sayName();

源碼練習

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			//創建一個name變量
			var name = "全局";
			
			//創建一個fun()函數
			function fun(){
				console.log(this.name);
			}
			
			//創建兩個對象
			var obj = {
					name:"孫悟空",
					sayName:fun
			};
			
			var obj2 = {
					name:"沙和尚",
					sayName:fun
			};
			
			//我們希望調用obj.sayName()時可以輸出obj的名字
			//obj.sayName();
			
			obj.sayName();
			
		
			
		</script>
	</head>
	<body>
	</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章