亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(函數($){})(JQuery)意味著什么?

(函數($){})(JQuery)意味著什么?

阿波羅的戰車 2019-07-04 18:36:13
(函數($){})(JQuery)意味著什么?我剛開始編寫jQuery插件。我寫了三個小插件,但我只是簡單地將這一行復制到我的所有插件中,而實際上并不知道它意味著什么。誰能告訴我更多關于這些的事嗎?也許有一天,在編寫框架時,解釋會派上用場:)這是干什么用的?(我知道它以某種方式擴展了jQuery,但對此還有什么有趣的了解嗎?)(function($) {})(jQuery);以下兩種編寫插件的方法有什么區別:第1類:(function($) {     $.fn.jPluginName = {         },         $.fn.jPluginName.defaults = {         }})(jQuery);第2類:(function($) {     $.jPluginName = {         }})(jQuery);第3類:(function($){     //Attach this new method to jQuery     $.fn.extend({          var defaults = {           }           var options =  $.extend(defaults, options);           //This is where you write your plugin's name         pluginname: function() {             //Iterate over the current set of matched elements             return this.each(function() {                 //code to be inserted here             });         }     }); })(jQuery);我可能離這里很遠,也許所有的意思都是一樣的。我很困惑。在某些情況下,這,這個似乎沒有在我用Type 1編寫的插件中工作。到目前為止,類型3對我來說似乎是最優雅的,但我也想知道其他的。
查看完整描述

3 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

首先,代碼塊看起來像(function(){})()只是執行到位的函數。讓我們把它分解一下。

1. (2.    function(){}3. )4. ()

第2行是一個簡單的函數,用圓括號包裝以告訴運行時將函數返回到父作用域,一旦返回函數,則使用第4行執行該函數,也許閱讀這些步驟會有所幫助。

1. function(){ .. }2. (1)3. 2()

您可以看到,1是聲明,2是返回函數,3是執行函數。

一個如何使用它的例子。

(function(doc){

   doc.location = '/';})(document);//This is passed into the function above

至于有關插件的其他問題:

類型1:這實際上不是一個插件,它是一個作為函數傳遞的對象,因為插件往往是函數。

類型2:這也不是插件,因為它沒有擴展$.fn對象。這只是jQuery核心的一個擴展,盡管結果是一樣的。這是如果您想要添加遍歷函數,如toArray等。

類型3:這是添加插件的最佳方法,jQuery的擴展原型接受一個保存插件名稱和函數的對象,并將其添加到插件庫中。


查看完整回答
反對 回復 2019-07-04
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

在最基本的層次上,某種形式(function(){...})()是立即執行的函數文字。這意味著您已經定義了一個函數,并立即調用它。

此表單對于信息隱藏和封裝非常有用,因為您在該函數中定義的任何內容都是該函數的本地函數,并且無法從外部世界訪問(除非您特別公開它-通常是通過返回的對象文字)。

這種基本形式的一個變體是在jQuery插件中看到的(或者在一般的模塊模式中)。因此:

(function($) {
  ...})(jQuery);

這意味著您將傳遞一個引用到實際jQuery對象,但它被稱為$在函數文字的范圍內。

類型1并不是真正的插件。您只需將一個對象文本賦值給jQuery.fn..通常,您將一個函數分配給jQuery.fn因為插件通常只是函數。

類型2類似于類型1,這里并不是真正創建插件。您只需將一個對象文字添加到jQuery.fn.

類型3是一個插件,但它不是最好或最簡單的方法來創建一個。

要了解更多這方面的情況,請看一下類似的問題回答..還有,本頁將詳細介紹有關編寫插件的內容。


查看完整回答
反對 回復 2019-07-04
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

一點幫助:


// an anonymous function

  

(function () { console.log('allo') });


// a self invoked anonymous function


(function () { console.log('allo') })();

  

// a self invoked anonymous function with a parameter called "$"

  

var jQuery = 'I\'m not jQuery.';


(function ($) { console.log($) })(jQuery);


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 895 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號