美文网首页
this的关键字理解和指向

this的关键字理解和指向

作者: 五四青年_4e7d | 来源:发表于2020-02-11 16:44 被阅读0次

    普通函数中this指向的是window

    function  add(a,b){
        console.log(this)
        return a + b
    }
    // this = window
    add()
    

    事件处理函数中this指向事件源:

    //html:
     <button id="but">按钮</button>
    //js:
    $("#but").on("click",function(){
        console.log(this)
    })
    

    回调函数中this指向window:

    var Bob={
             sname:"鲍勃",
             friends:["Jack","Rose","Tom","Jerry"],
             intr(){
               this.friends.forEach((ele)=>{
                    console.log(this.sname+"认识"+ele);
               });
             }
        }
         Bob.intr();
    
    

    构造函数中this指向的是创建出来的对象:

    function Person3() {
        this.name = 'tianxia'; //这个this指向什么?
    }
    var person3 = new Person3();
    

    怎么样改变this的指向?(call() apply() bind()调用模式:)

    function info(name,age){
        return console.log('你好'+ name + '我是调用的'+ this.name + age + '岁')
    }
    var whh = {
        name:'娃哈哈'
    }
    console.log(whh)
    //使用call可以把this绑定上,function的this等于什么,可以在外部指定;
    //第一项用于绑定函数里面的this
    //call和apply本质上是一样的不同的区别如下:(传参为数组)
    //bind 必须要用变量接收,调用变量()不马上执行
    info.call(whh,'李慷',111)
    info.apply(whh,['李慷',111])
    
    var yy = info.bind(whh)
    yy('kk',22)
    

    相关文章

      网友评论

          本文标题:this的关键字理解和指向

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