2015-10-05 36 views
1

我只是通過timer.js HERE的代碼去,與鍍鉻的開發工具打轉轉,基本上我所說的插件,像這樣:瞭解這回在timer.js

var timer = $.timer(function(){ 
       $('#add-html').html('Hello There !!');  
      }); 


      timer.set({ time:5000 , autostart :true }); 

即使是演示使用相同的例子,下面的線現在執行時:

var timer = $.timer(function(){ 
        $('#add-html').html('Hello There !!');  
       }); 

THIS LINE插件執行內部和returns this,但什麼現在是return this?它是整個插件的一個實例嗎?或者究竟是什麼,我知道沒有它會引發錯誤,但究竟是return this在這裏用於什麼,它是什麼value

我使用return this很多鏈接等在JavaScript中,但不知何故我無法理解在這裏return this的上下文用法,任何人都可以解釋?

謝謝。

亞歷-Z。

+0

return this retuns the $ .timer instance – guramidev

回答

2

您應該在調試器中運行此設置(設置斷點或debugger語句),並在該點評估this

對我而言,this === jQuery在第一次運行時爲真,this instanceof $.timer在後續運行中爲真。

+0

hmm ...因此插件在第一次運行時將屬性附加到'jQuery'。這似乎有點危險,例如,它會覆蓋自己的'toggle'方法... –

+0

是的,我沒有寫插件,但通常我看到使用'$ .fn.pluginName = function( ...)'在'$ .prototype'上創建插件,而不是直接屬性。 – arcyqwerty

+0

$ .fn在這裏沒有意義,因爲這意味着它附加到一個元素(這裏不需要)。它只是需要分離。只是確認你的發現。 –