this的研究

研究 this

定义: 总是指向函数的所有者

看完还是很懵逼,首先我们要搞懂什么是调用者什么是所有者,如下例子:

调用者:
把函数a赋值给变量c那变量域 c 就是函数a的调用者,此时的变量c存放的是a的地址
同理d的x属性域也存放a函数的地址,它也是函数a的调用者.

所有者:
因为c 是属于全局对象window 所有,所以window对象就是函数a的所有者
同理,x属于对象d所有,所以对象d也是函数a的所有者

function a(){
            console.log(this+"我是a函数");
};
var c = a;
var d = {
    x:a         
};
c();  //[object Window]我是a函数
d.x(); //[object Object]我是a函数

理解了调用者和所有者,那this就好办了;

举个例子:大家可以去试试


function f(){
	this.x = function(){
		console.log(this)
	}
}
函数 f this 所有者window
this.f()  === f() === window.f()
this.x() 所有者也是window
在执行f()后,
this.x() === x() === window.x()

 this === window ,window是可以省略的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值