初探 Function.bind()
前言
最近查找 Function 發現裡面有個 Function.bind() ,在此把學習的過程做個紀錄。
內容
範例如下
let objA = { x : 1234, getX : function(){ return this.x; } }; let objB = { x : 5566, }; // console.log( objA.getX() );//1234 // x = 9999; let call = objA.getX; console.log( call() );//9999 // let bindCall = objA.getX.bind(objB); console.log( bindCall() );//5566
Function.bind() 的作用是決定該 Function 在喚起時的 this 會是哪個物件,範例的 objA.getX() 就是單純的成員函式喚起,接著透過 call 來喚起時,如果不做 Function.bind() 的話會得到 9999 ,範例有設定 global 的 x 是 9999 ,最後用 Function.bind() 綁定到 objB 上,要注意 objB 本身是沒有 getX() 的!只是成員也有 x ,綁定完後喚起會得到 objB.x 的內容,也就是 5566。
沒有留言:
張貼留言