call是如何改变this指向的?

		// this call
		// call能改变函数里面的this指向
		let obj = {
				num : 234;
				 
}
		function test() {
			let num = 123;
			console.log(this.num);
			
			function a() {}
			}
		test.call(obj);
		/*当调用call方法时,AO里面的this指向变为,this -- > obj ,也就是call()里面的第一个值,打印时是234而并非123,原理也就是通过call里面的第一个值(obj)调用前面被引用的(test)方法*/


		// 1.预编译 this -- > window
		/*
		(1)test() -- > AO {
		
		}
		(2)找形参变量声明
		test() -- > AO {
			3.	arguments : {},  //生成一个类数组
			4.	this : window
			1.	num : undefined,
			2.	a : function (){}
		*/
		// 2.谁调用的this指向谁
		// 3.call apply 改变this指向
		// 4.全局 this --> window

你可能感兴趣的:(js前端)