this的指向

110 阅读1分钟

1、自执行函数中的this永远指向window

   var obj = {
           fn: (function () {
               console.log(this);//this-->window
               return 12;
           })()
       };

2、给元素的事件绑定方法,当触发事件执行对应方法的时候,方法中的this是当前的元素

oDiv.onclick=function(){
           //this-->oDiv
       }

3、普通函数中的this总是指向它的直接调用者;如果没有调用者在严格模式下this是 undefined,在非严格模式下this指向window

例题:

var num = 1;
    var obj = {
        num: 2,
        fn: (function () {
            this.num *= 2;
            num *= 2;
            var num = 3;
            return function () {
                this.num *= 2;
                num *= 3;
                console.log(num);
            }
        })()
    };
    var fn = obj.fn;
    console.log(num);//2
    fn();//9
    obj.fn();//27
    console.log(window.num);//4
    console.log(obj.num);//4

解析:

1、console.log(num);

num==window.num,代码从上到下执行

推荐例题链接blog.csdn.net/YX_GUO_L/ar…