javascript改变this指向的三种方法

apply和call都是为了改变某个函数运行时的上下文而存在的(就是为了改变函数内部this的指向);

如果使用apply或call方法,那么this指向他们的第一个参数,apply的第二个参数是一个参数数组call的第二个及其以后的参数都是数组里面的元素,就是说要全部列举出来。

         <script type="text/javascript">

			var number = [56,36,-18];
			var maxInNumber = Math.max.apply(Math,number);
			var maxnumber = Math.max(12,26);
			console.log(maxnumber);//26
			console.log(maxInNumber);//56
			/**
			 * apply第一个参数传入的是一个对象(当前函数的this是指向这个对象的,如果或者实例化后的函数),第二个是传入的是一个数组
			 * call第一个参数传入的也是一个对象,后面的参数是一个一个的数组里面的元素,这里如果传入null或者undefined,this就会绑定给顶层对象
			 * bind第一个参数传入的也是一个对象,只不过bind绑定后得到的是一个未运行的方法,而call或者apply都是会立即执行的
              *如果多次调用bind,那么多出来的次数都是无效的,
               */ function cat(bgg,melon){ this.bgg = 123; this.melon = "456"; console.log(123); } var catdemo = new cat("123"); function mouse(){ var name = "123"; document.write("1223"); } var test = mouse.bind(catdemo); test();//页面输出1123 console.log(test);//打印出返回后的函数mouse,包括注释。 </script>

  

转载于:https://www.cnblogs.com/xiongmaoblog/p/6624959.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值