ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

总结一下咱们JS中的this

2022-01-10 01:03:09  阅读:160  来源: 互联网

标签:总结 Box console log function JS num var 咱们


        //  全局中的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

 

标签:总结,Box,console,log,function,JS,num,var,咱们
来源: https://www.cnblogs.com/0811thomas/p/15782883.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有