什么是this指向?怎么改变this指向
1个回答
展开全部
this在函数定义时确定不了,只有在函数指向时才能确定,this就是谁调用指向谁,没有上一级即指向widow。
第一:this指的是函数运行时所在的环境(即调用的对象)。
第二:JavaScript 语言之所以有this的设计,跟内存里面的数据结构有关系
第三:每一个方法或者是对象都有其this指向;
举例:
例:
指向上一级,假如调用这个函数的有多级对象,那么this指向的是调用它的上一级对象,例:
当函数体被重新赋值后再调用,this指向window对象
就六个字 谁调用,指向谁。但是如果一个函数中有this,并且这个this没有被上一级调用,那么这个this的指向就是window。
如果一个函数中有this,这个函数被上一级对象调用,那么this就指向上一级对象
如果一个函数有this,假如调用这个函数的有多级对象,那么this指向的是调用它的上一级对象。
我们可以用apply(),bind(),call();这三个方法来改变this的指向。
举例说明:
注:这三种方法在没有接收其他参数的情况下没有什么太大不同,但是bind()方法后必须加‘()’,否则会报错。
call()方法比较简单易操作;
apply()在接收其他新的参数的时候,这些参数必须放在一个数组里;
bind()在使用的时候必须加()。
第一:this指的是函数运行时所在的环境(即调用的对象)。
第二:JavaScript 语言之所以有this的设计,跟内存里面的数据结构有关系
第三:每一个方法或者是对象都有其this指向;
举例:
例:
指向上一级,假如调用这个函数的有多级对象,那么this指向的是调用它的上一级对象,例:
当函数体被重新赋值后再调用,this指向window对象
就六个字 谁调用,指向谁。但是如果一个函数中有this,并且这个this没有被上一级调用,那么这个this的指向就是window。
如果一个函数中有this,这个函数被上一级对象调用,那么this就指向上一级对象
如果一个函数有this,假如调用这个函数的有多级对象,那么this指向的是调用它的上一级对象。
我们可以用apply(),bind(),call();这三个方法来改变this的指向。
举例说明:
注:这三种方法在没有接收其他参数的情况下没有什么太大不同,但是bind()方法后必须加‘()’,否则会报错。
call()方法比较简单易操作;
apply()在接收其他新的参数的时候,这些参数必须放在一个数组里;
bind()在使用的时候必须加()。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询