js中.bind()和.call()用法講解

var option = {
          ti : 8,
          it(){
              return this.ti;
          }
      }

這裏又一個option對象,it()方法裏的this指的就是option對象的上下文。函數

console.log(option.it());

直接輸出option.it()能夠打印出8,option對象做爲全局變量能夠直接調用;this

那我若是隻想用option裏的it()方法呢,如這樣:spa

var option = {
          ti : 8,
          it(){
              return this.ti;
          }
      }
      var option2 ={
          ti :7
      }
      var nb = option.it.call(this.option);//call裏的this>wiondow對象
      var nb2 = option.it.call(option2);
      console.log(nb);//8
      console.log(nb2);//7
      console.log(option.it());//8

nb2這個對象,將option裏的this指向了option2,因此this.ti至關於option2.ti;code

bind和call用法差很少,call返回的是對象,bind返回的是一個函數。若是var bn2 = option.ti.bind(option2);那麼在調用的時候就要對象

console.log(nb2())
console.log(nb2())
相關文章
相關標籤/搜索