1. 程式人生 > >call和apply,bind的區別專講

call和apply,bind的區別專講

ply 默認 app UNC proto 函數名 實參 拖拽 焦點

  可以幹什麽?

  改變函數內的this指向;

  什麽時候使用?

  構造函數使用this

  為什麽使用?

  為了生成對象

  類(函數名不可以帶括號).call() 因為this指向對象,所以call的第一個參數為對象

  function fn(a,b){ (形參)

    this.name="zhang";

    this.age=20

  }

  obj={

    name:"li";

    age:10

  }

  fn.call(obj,a,b)

  fn.apply(obj,[a,b]) (實參) 傳參{形參,實參}

  fn.bind(obj) bind(把fn中的this改變obj ,但是不調用 適用於事件)

  解析為: fn.prototype={

        name:"li"

        age:10

        }

  瀏覽器會默認為向下取整:

  定時器的使用時,先清除定時器,然後在寫定時器(防止越點越快);

  鼠標拖拽的問題:<div>1</div>

  div中有字體,會出現鼠標焦點的丟失

call和apply,bind的區別專講