总结一下咱们JS中的this

        //  全局中的this
        //  指的是window

        console.log(this);//window
        function abc() {
            console.log(this);//window
        }
        abc();
 
        //  事件中的this
        //  什么是事件,当前这个函数,在addEventListener中被传入第二个参数,当前这个
        //  函数有且仅有一个参数,是e,并且这个e是基于event的对象
        
        var div=document.createElement("div");
        document.body.appendChild(div);
        div.addEventListener("click",clickHandler);
        function clickHandler(e) {
            console.log(this);//div  是e.currentTarget,被侦听的对象
        }

            // 混入this
            // call,apply,bind三种都可以混入对象,this将代表这个对象
    
        function getsum(num) {
            this.a+=num;
        }
        var obj={a:0};
        var obj1={a:10};
        var obj2={a:20};
        getsum.call(obj,10);//a=10
        getsum.apply(obj1,[10]);//a=20
        getsum.bind(obj2)(10);//a=30;
      
        //   对象中的this
        //   对象中的this就是指当前的这个对象
        

        var obj3={
            a:10,
            c:function () {
//                this--->obj3
                console.log(this.a);
            }
        };

        /*
         类中的this
       /* class Box{
            constructor(){
                this.num=3;
            }
            play(){
//                this->obj5 也就是通过new实例化的对象
//                console.log(this.num);
                console.log(this===obj5);
            }
        }
        let obj5=new Box();
        obj5.play();
        let obj6=new Box();
        obj6.play();*/

        function Box() {
            this.num=3;
        }
        Box.prototype={
            play:function () {
                console.log(this.num);
            }
        };
        var obj7=new Box();
        obj7.play();//this就是obj7

 

上一篇:基于对比学习的标签有效语义切分方法


下一篇:【JAVA】有效的数独