jQuery 上下文綁定

2018-07-24 11:49 更新

上下文綁定在函數(shù)型的語言當中起著非常重要的作用。不過, jQuery 中對此似乎并沒有怎么強調(diào),它的很多函數(shù)都默認處理了上下文,文檔中也會告訴你,在某個函數(shù)當中, this 是什么東西,我覺得這種做法不太好。

jQuery 中有一個函數(shù)專門用于處理上下文綁定,雖然我覺得把 context 放在后面的格式非常別扭,不過好過沒有吧。

$.proxy()
為函數(shù)綁定上下文

它有兩種使用方法,第一種就是最普通的,提供函數(shù),和上下文對象,然后返回一個新函數(shù):

$.proxy( function, context )

第二種,是提供一個上下文對象,及在這個上下文當中的一個成員名,然后把這個上下文綁定到這個成員之后,再返回這個成員。

$.proxy( context, name )

看下面的例子,來理解上下文:

var o = {
  x: '123',
  f: function(){console.log(this.x)},
}
var go = function(f){f()}

o.f() // 123
go(o.f) // undefined
go($.proxy(o.f, o)) //123
$.proxy(o, 'f')() //123

當一個函數(shù)被傳遞之后,它就失去原先的上下文了。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號