有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

js this指向问题

javascript cat 10个月前 (12-07) 35次浏览 已收录 0个评论 扫描二维码
        // 1、全局环境下的this: window
        console.log(this);

        // 2、事件处理函数中的this: 触发这个事件的元素
        box.onclick = function(){
            console.log(this);
        }

        // 3、定时器中的this: window
        setTimeout(function () {
            console.log(this);
        }, 1000);

        // 4、函数直接执行中的this(严格模式下是undefined)  
        // 严格模式:在函数里面第一行加上:"use strict";。则当前这个函数以严格模式解析
        function fn() {
            "use strict";
            console.log(this);
            var a = 5;
            console.log(a);
        }
        fn();

        // 5、call apply。作用:调用函数,可以修改函数中的this指向

        // 6、对象方法内部调用
        var obj = {
            name: 'obj',
            fn: function () {
                console.log(this);
            }
        };

        obj.fn(); // this指向obj

        var v = obj.fn;
        v(); // this指向window

        // 7、构造函数中的this: new实例化的时候创建出来的哪个对象
        // 8、原型链函数中的this:关键看原型链中的函数被谁调用,一般情况下指向这个对象
        function Fn() {
            console.log(this);
        }
        Fn.prototype.show = function () {
            console.log(this);
        }

        var f = new Fn();
        f.show();

        // 9、所有的回调函数里面的this是 window
喜欢 (0)
cat
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址