JavaScrip中this的实例化讲解

this的实例化讲解

一个结论:this用于访问当前方法所属的对象,针对于普通函数而言,箭头函数不符合该结论。(访问的是对象,和方法函数无关)

一.this不跟着函数的定义走,而跟着函数的调用走

function show(){
    console.log(this);
}
show();

此时输出为window,在我看来,此时的window扮演兜底的角色,但其实this不属于任何对象,于是严格模式出现,在严格模式下工作的代码,this输出为undefined。

    // 严格模式,在此模式下,输出为undefined
    'use strict';
function show(){
    console.log(this);
}
show();

二.挂载在一个对象上,执行这个方法

 'use strict';
function show(){
    console.log(this);
}
var arr=[1,2,3];
arr.fn=show;
arr.fn();

此时输出得到:
输出的内容

三.定时器

 'use strict';
function show(){
    console.log(this);
}
setTimeout(show,100);

此时输出得到:
在这里插入图片描述
输出得到window,原因是因为定时器本身就是属于window的。

四.构造函数

 'use strict';
function show(){
    console.log(this);
}
let s=new show();

this相当于你构造出来的实例,相当于s

五.工具函数

 'use strict';
function show(){
    console.log(this);
}
show.call(123);
show.call('asdsddsr');
show.call(new Date());
show.call({a:12});

此时输出得到:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值