this,call,apply的用法

       this 默认window对象
       在对象内或者new的时候,this指当前对象
       call和apply可以改变this的值 

/*	function add(a,b){
			console.log(this);
			return a+b;
		}

		function sub(a,b){
			console.log(this);
			return a-b;
		}

		var m1=add(10,8);
		var m2=add.call(sub,10,8)

		var m2=add.apply(sub,[10,8]);//执行add方法

		var m2=sub.call(add,10,8);
		var m2=sub.apply(add,[10,8]);

		console.log(m1);
		console.log(m2);*/

		/*var fru={
			color:'pink',
			say:function(){
				console.log('my color is '+this.color );
			}
		};
		// fru.say();
		var app={color: 'red'};

		fru.say.call(app);*/

		/*var arr=[1,2,3];
		var arr0=[4,5,6];

		//push
		Array.prototype.push.apply(arr,arr0);
		console.log(arr);*/

		//求最大值
		/*(function getMax(){
           var m=Math.max.apply(null,arguments);
           console.log(m);
		})(100,200,8,600,900)*/

		/*function Person(){
			this.say=function(){
				console.log('哈哈');
			}
		}
		var s=new Person();
		s.say();*/

	/*	var arr=[200,90];
		Array.push.apply(arr,[10,20]);//error
		console.log(arr);*/

		(function show(){
			Array.prototype.push.call(arguments,100);
			console.log(arguments);
		})(5,3,1,10);

猜你喜欢

转载自blog.csdn.net/weixin_44606660/article/details/87867393