THIS

作者: 晚月川 | 来源:发表于2020-03-21 21:49 被阅读0次

    THIS

    函数执行的主体(不是上下文):意思是谁把函数执行的,那么执行主体就是谁
    this非常的不好理解,以后遇到this,想到一句话:“你以为你以为的就是你以为的

    this是谁和函数在哪创建的或者在哪执行的都没有必然联系

    • 掌握几条分清执行的主体的规律
      1. 给元素的某个事件绑定方法,当事件触发方法执行的时候,方法中的this是当前操作的元素本身

      2. 如何确定执行主体(this)是谁?当方法执行的时候,我们看方法前面是否有点,没有点this是window或undefined;有点,点前面是谁this就是说谁

      3. 在构造函数模式执行中,函数体中的this是当前类的实例

    var name = '你好';
    function fn() {
        console.log(this);
    }
    var obj = {
        name:"世界";
        fn:fn;
    }
    obj.fn();//=>this:obj
    fn();//=>this:window(非严格模式,严格模式下是undefined) window.fn()把window.省略了
    
    (function(){
        //自执行函数中的this是window或undefined
    })
    

    思考?????????????

    //=>hasOwnProperty方法中的this:ary.__proto__.__proto__
    ary.__proto__.__proto__.hasOwnProperty()
    
    let obj={
        fn:(function(n){
            //把自执行函数执行的返回结果赋值给fn
            //this:window
            return function(){
                //=>fn等于这个返回的小函数
                //this:obj
            }
        })(10)
    };
    obj.fn();
    
    
    function fn() {
        //this:window
        console.log(this);
    }
    document.body.onclick=function() {
        //this:document.body
        fn();
    }
    

    相关文章

      网友评论

        本文标题:THIS

        本文链接:https://www.haomeiwen.com/subject/pccpyhtx.html