bind方法

bind方法: 创建一个新函数,借用旧函数,并提前绑定this和参数值。
    何时使用: 在创建方法时,就需要提前绑定this对象和参数值
    如何使用: 2步:
      1. 使用bind方法,基于现有函数创建新函数,并绑定this对象和部分参数值:
var newFun=fun.bind(obj[,参数1,参数2,...])

      2. 调用newFun,传入剩余参数: newFun(剩余参数)


<span style="font-size:18px;"><!DOCTYPE html>
<head>
	<meta charset="utf-8"/>
	<title>css001</title>
</head>
<body>
	<script>
		var hmm={ename:"Han Mei",base:5000}
		var lilei={ename:"Li Lei",base:4000}
		function calc(base,bonus){//定义一个计算器
			document.write(
				"<h1>"+this.ename+":"+(base+bonus)+"</h1>"
			);
		}

		calc.call(lilei,lilei.base,7000);
		calc.call(hmm,hmm.base,5000);

		//李蕾买了一个自己的计算器
		var lilei_calc=calc.bind(lilei,lilei.base);//bind可以提前绑定对象和部分参数,写确定的参数
		lilei_calc(4000);//this---李蕾
		//被bind所占的计算器,别人就用不了了
		lilei_cal.call(hmm,hmm.base,8000);

		//笔试:
		/*call vs apply  vs   bind
		共同点:都是在调用时,动态指定函数中的this
		不同点:
			1.call,apply借用,临时绑定
			2.bind 永久绑定
		返回值:
			1.call,apply不 创建 新函数,仅 调用 原函数
			2.bind基于原函数,创建新函数对象
			之后调用的其实是新函数对象
		参数:
			2,call,apply在调用的时候传入所有参数
				call,要求独立传入每个参数
				apply,要求将参数放入数组,统一传入
			2,bind可在创建函数提前绑定部分参数
				调用函数时,
		

		严格模式:54-57的标题
		比普通模式更严格的执行方式

		*/
	</script>
</body>
</html>
</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值