改变this指向的操作

改变this指向的方法

之前已近介绍过this指向的情况,其实this的指向是可以改变的,有些人就会好奇,那怎么样改变this的指向呢?

其实改变this的指向,有三种比较常用的方法。

1:call()的用法:

function.call(调用的对象(obj),参数),这个呢是让obj调用这个function方法并执行,参数是以逗号隔开的。

2:apply()的用法:

与call()相似,不同的地方是参数,参数必须是数组或者类数组。也是会直接执行的。

3:bind()的用法:

bind()与上面两种就不一样了,它只是单纯的改变函数的执行上下文,并不会马上执行函数。

var obj = {
    name:'tom',
    age:20
}
 
function show(a,b){
    console.log(a,b);
}

show(1,2);
 
//使用call()方法将函数中的this指向变为obj
show.call(obj,1,2);

//通过使用apply方法,将show()函数中的this指向变为obj,可以看到apply()中参二穿的是一个数组。
show.apply(obj,[1,2]);
 
//强制更改this指向obj,不会立即执行,它会返回一个新函数,需要主动去执行这个函数
show.bind(obj,1,2)();

其实还有一种方法来改变this的指向,就是使用new关键字,构造一个构造函数,那么此时的this指向就指向了构造的那个构造函数。

总结:
call和apply都是改变上下文中的this并立即执行这个函数,但是他们的不同点仅仅是参数的不同,而bind方法可以让对应的函数想什么时候调就什么时候调用,并且可以将参数在执行的时候添加,这是它们的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会的进步导致人们对于学习的追求永不止境,那么追求农业信息化的方式也从单一的田地教程变成了多样化的学习方式。多样化的学习方式不仅仅是需要人们智慧的依靠,还需要能够通过软件的加持进行信息化的价值体现。软件和系统的产生,从表面上来看是方便了某一行业和某一行业的用户,其实是从本质上来说是提高了社会的进步。就拿我们常见的出行而言,滴滴出行看似是为了打车和出行的人方便,但其实通过另外一种程度上来说,可以通过软件应用的调度和发展来为社会、城市出行的发展做出巨大的贡献。我们国家从最早的中国制造业演变到现在的“智造”,就是因为有软件信息系统的价值,能够将一些智慧的因素加入到制造的过程当中,而这一点就是软件系统来改变生产和现实的需求。在计算机时代日益发展的今天,计算机网络正快速融入这个社会的每一个领域。农业的发展是社会当中一种必有可少的方式。果树在种植和培养是直接影响果农及果商的发展,但在果树的资源管理方面还是有着很大的不同,所以信息多样化的果树管理方式很重要。在传统的果树资源管理上还有着很大的约束,为此开发和设计JSP杏种质资源管理系统,该系统内容丰富多彩,用户可以在线进行果杏树的资源查询等。本文还是使用JSP的方式来进行管理的,但在系统建设过程当中也考虑了许许多多信息安全的保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值