总结一下咱们JS中的this

2022/1/10 6:05:23

本文主要是介绍总结一下咱们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

 



这篇关于总结一下咱们JS中的this的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程