有個函數(shù)接受一個包裹著幾個回調(diào)函數(shù)的對象,而除此之外我還想傳一些自定義的參數(shù),在那些回調(diào)里會用到。最初想的是作為對象的屬性:varoptions={callback:function(){console.log(this.a);}};xxxxx.func($.extend(options,{a:1}));但是回調(diào)函數(shù)執(zhí)行的時候this會被改變,這樣肯定就獲取不到a了,有別的方法嗎?如果沒有的話我想只能把a包在閉包里,例如這樣,不過又要新增一個函數(shù):varconstructOptions=function(a){return{callback:function(){console.log(a);}}}xxxxx.func(constructOptions(1));實踐了一下,這個閉包的方法也很不好,返回的對象必須是在construct函數(shù)里創(chuàng)建的,不然閉包也不會把a包進去
javascript對象如何在this被改變(call,apply)的情況下獲取自身屬性?
www說
2019-04-14 10:35:50