美文网首页
this和函数调用语法糖

this和函数调用语法糖

作者: size_of | 来源:发表于2017-08-28 23:21 被阅读0次
    var obj = {
      init:function(){
        console.log(this.id);
      },
      id:1
    }
    

    调用函数时的obj.init()是一种语法糖,其实浏览器的调用形式是obj.init.call(obj)
    如果我们还有一个对象

    var obj2 = {
      id:2
    }
    

    我们按正规的方式调用obj.init.call(obj2)时我们会发现,这时init函数里的this变成了obj2。
    js的对象是松散的,我们可以通过call这样的函数,让对象调用其他对象的方法。
    所以我们一定要注意与下面类似的代码:

    button.onclick = this.click
    

    其实当你点击按钮时click函数的调用形式是这样:

    this.click.call(button)
    

    也就是click内部的this其实是你点击的元素!!

    相关文章

      网友评论

          本文标题:this和函数调用语法糖

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