this

var name = 'hello world'
var app = {
  name : 'apple',
  sayName : function(){
    console.log(this.name)
  }
}


var obj = {
  name :'objName'
}

app.sayName.bind()()  || app.sayName.bind('window')()      //hello world
app.sauName.bind(obj)()       // objName
//bind 返回的是一个新的函数 所以后面要加上()

函数名+ bind(对象名)()
他的意思表名返回一个新的函数,执行的还是函数名的函数体,但是内部this的指向是对象名这个对象

var page = {
  init:function(){
    this.node = document.body
    this.bind()
  },
  
  bind:function(){
    this.node.addEventListener('click',this.sayHello.bind(this))
  },
  
  sayHello:function(){
          
    console.log('hello...'+this.node.innerText)
  }
}

page.init()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容