刚入行的时候常常对this的指向,有许多的迷惑,随着工作中的理解与Javascript的基础学习,慢慢的就知道它其实是个啥玩意儿,现在就来扒一扒关于this的日记。。。 使用this的场景一般是在函数里边,把widow想象成一个国家,而this代表一个公民。如果在普通函数里面调用this,就相当于有人问你你是哪个国家的人,那此时的回答肯定是我是中国人,此时普通公民代表的是某个国家的人,就相当于普通函数得this的指向是window。如果函数在对象里面,例如 var obj = {a:'obj',fn: funcion(){console,log(this.a)}},那么此时的obj对象就相当与国家下面的一个省份,就相当于有人问你你的家乡有什么特色,此时的指向是整个省,你的出生的省份有任何特色都可以调取出来吹一吹,但别的省份的特色就不能再说啦,就相当于对象函数的this的指向已经固定在obj对象里面而不是window。用new定义的函数调取this,那指向就绑定在实例上,就相当于结婚人士,本来是可以拥有一整片森林,绑定实例以后那就吊死在一颗树上了,就相当于new的实例this指向是实例。其它改变this指向的几个内置函数apply,call,bind的this指向是第一个参数,这就相当于嫁了人的女孩,虽然嫁人了,但始终觉得自己的属地还是出生的地方,有人问她你家乡有些什么好吃的呀,她虽然身在婆家,但是说的还是娘家特色。es6发布以后,有了箭头函数,箭头函数里面的this指向永远是包裹箭头函数的第一个普通函,就相当于一个特工,他可能从A国到B过去当间谍,取得了B国的信任,又被派到C国去当间谍,但是不管他周转多少个国家,他也永远只属于A国。