2015-07-13 63 views

回答

4

這兩種方法之間的區別這不是一個jQuery的東西,它是一個JavaScript的東西。它決定了呼叫期間this將會是什麼。

隨着foo(),調用foo期間,this將或者全局對象(鬆散模式)或undefined(嚴格模式)。

With foo.call(x),在致電foo時,this將爲x。所以foo.call(this)確保在致電foo期間this與您呼叫它的this相同。

更多(我的博客)

+0

這是那麼一回事嗎? func()和func.call()?謝謝 – Gus

+0

@Gus:'call'的第一個參數[不是可選的](http://www.ecma-international.org/ecma-262/5.1/#sec-15.3.4.4)。在鬆散模式下,'foo()'和'foo.call(theGlobalObject)'(其中'globalObject'是對全局對象的引用;在瀏覽器上你可以從'window'中得到這個])。在嚴格模式下,'foo()'與'foo.call(undefined)'相同。 –

+1

非常感謝! – Gus