JavaScript中的this怎样辨别

JS中的this代表的是当前行动实行的主体,JS中的context代表的是当前行动实行的环境,this是谁和函数在哪定义的以及函数在哪实行的没有任何的关联,怎样辨别this?
一、非严厉形式下
1、函数实行,首先看函数名前面是不是有‘.’,有的话,‘.’前面是谁,this就是谁,没有的话this就是window。
2、自实行函数中的this永远是window
3、给元素的某一个事宜绑定要领,当事宜动身的时刻,实行对应的要领,要领中的this是当前元素。
4、在组织函数形式中,this.xxx = xxx,this就是当前类的实例
5、用call、apply、bind转变this
(五种情况下第五种优先)
二、严厉形式下
1、自实行函数中的this永远是undefined
2、函数实行,首先看函数名前面是不是有点,有的话,点前面是谁,this就是谁,没有的话this就是undefined

结论:严厉形式下的this相关于非严厉形式下的this重要区分在于:关于js代码中没有实行主体的情况下,非严厉形式下默许都是window实行的,所以this指向的是window;但是在严厉形式下,没有写就是没有实行主体,this指向的是undefined。

    原文作者:whiteocean
    原文地址: https://segmentfault.com/a/1190000008135975
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞