通過bind改變處理函式中的this指向

2021-09-28 15:04:32 字數 833 閱讀 5864

通過bind 改變事件處理函式中this的指向

mdn解釋

bind方法會建立乙個新函式 稱為繫結函式

當呼叫這個繫結函式時

繫結函式會以建立它時傳入bind()方法的第乙個引數作為this

傳入bind()方法的第二個以及以後的引數

按照順序作為原函式的引數來呼叫原函式

注意 :bind方法的返回值是函式

// 建立乙個物件

var obj = ,

bar:

function(na)

}// // 呼叫物件中的方法

obj.fun();

// 建立乙個函式

var o = function fn()// o();

// o.bind(obj)();

// 或者

// 這時候this指向了obj

// var o2 = o.bind(obj );

var o2 = o.bind(obj,obj.na )

o2();

//**段

}**段

setinterval(function() , 1000);

}呼叫物件

obj.fun();

原來的物件this指向 function 是區域性物件 區域性物件的方法只能在區域性物件裡使用

可以利用bind()把fun()方法中的this繫結到物件上 並且可以傳進去額外的引數

當返回的繫結函式被呼叫時 這些額外的引數會自動傳入繫結函式

類似css中的mixin

現在有了bind 通過bind 把區域性物件中的屬性和方法繫結到另乙個物件 讓另乙個物件也能使用這個物件的方法

bind 函式中sockaddr的意義

ip 的意義 對於client端來說,如果我們繫結了ip表明,這個ip是它的源ip。對於server端來講,繫結了ip表明 server只能接受這個ip上的連線 也就是固定網絡卡介面了 舉個列子如果server 繫結的是127.0.0.1 的話,它代表只能接本機的資料報不接受外面發生的資料報,也就是...

網路程式設計中的bind 函式

一 作用 給我們的socket繫結埠號與具體位址 二 樣子int bind socket s,const sockaddr addr,int namelen s 標識未繫結套接字的描述符。addr 待定namelen 名稱引數所指向的值的長度 以位元組為單位 三 引數 示例bind sky serv...

改變函式中的this

有這樣的3個方法可以改變函式體的this指向 var test function x bind 方法,bind方法返回乙個指定this物件的函式,對源函式沒有影響。var bdingfn test.bind bdingfn 9 bindding 9 另外,可以給test函式換乙個this物件 var...