对象属性或者方法中的this指向

var name = 'global';

    var obj = {    

        name : 'obj',

        age :this,    

        dose : function(){    

            console.log(this);

            this.name = 'dose';        

            return function(){            

                return this.name;        

            }    

        }

    }

    //console.log(this)

    console.log(obj.age);//对象里面的this指向window,

    //obj.dose();//对象方法下的this是obj

    console.log(obj.dose().call(this));

    //这里call(this)是调用了函数:

    // function(){            

    //     return this.name;           

    // }//改变了这个函数里面的this指向

总结:

1.自定义函数中的this指向的是window

2.事件处理程序下的this,指向绑定这个事件的事件源对象

3.自定义对象下的方法中的this指向调用这个方法的对象

4.严格模式下自定义函数的this是undefined

5.定时器下的this指向的是window

6.可以使用bind(),call(),apply()改变this的指向

7.箭头函数里面的this来源于声明时所在的上一级this的指向,箭头函数里面的this指向不能改变

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。