js中的call和apply

最近在看jQuery源码,里面好多地方用到了call(),apply()一直不是很理解这两个函数,今天花了点时间了解了一下,只是了解了一些皮毛


apply和call()的区别就是里面的参数

apply(thisObj,[arguments])

call(thisObj,arr1,arr2...)

根据网上说的,这两个函数的实质就是改版this的指向,例

 function add(a, b){
	console.info(this);
		this.a=a;
		this.b=b;
		alert(this.a);
	}

	function sub(a, b){
		console.info(this);
			this.a=a;
			this.b=b;
		alert(this.a);
	}



add.call(sub, 'sub', 2);//提示sub


sub.apply(add, ['add', 2]);//提示add

thisObj也可以是一个对象,比如

</pre></p><p><pre name="code" class="javascript">function test(name){
		this.name=name;
	}
	
	test.prototype.sayName=function(){
		alert(this.name);
	}
	
	var t=new test('ttt');
	
	t.sayName();
	
	var a={'name':'tom'};
	
	t.sayName.call(a);//提示tom


好吧,组织不好语言,了解的也不多,第一篇文章就这样吧!继续努力!!!





转载于:https://www.cnblogs.com/Iqiaoxun/p/5350607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值