站長資訊網
        最全最豐富的資訊網站

        javascript函數怎么寫

        javascript函數的寫法有:1、常規寫法,“function 函數名(){js代碼}函數名()”;2、$(function(){})寫法,“$(對象).ready(function() {js代碼});”。

        javascript函數怎么寫

        本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

        Javascript和其他編程語言相比比較隨意,所以Javascript代碼中充滿各種奇葩的寫法,有時霧里看花,本文講一下JavaScript函數的寫法。

        在Javascript中只有對象。 變量是對象,函數也是對象。 只要你知道你的對象是什么,按照它的方式去使用就可以了。 Javascript是弱類型,對象,實例,函數,方法通用的。不需要區別那么清楚。

        1. 常規寫法:

        // 函數的定義 function foo() {     alert('常規寫法'); } // 函數的調用 foo()

        這種寫法是大家最熟悉,最易于理解的寫法和調用方法,接著往下看

        2. 匿名函數寫法

        // 函數的定義 var foo = function(){     alert('匿名函數定義'); } // 函數的調用 foo()

        這里把功能定義弄成了匿名,省去了命名的痛苦,同時賦給了一個變量,變量就成了功能的代名詞,接著看

        3. 將方法作為一個對象

        // 定義 var test = {     fun1: function(){  },     fun2: function(){  } } // 調用 test.fun1(); test.fun2();

        在Javascript中變量功能很強大,可以代表很多東西。

        4. 構造函數中給對象添加方法

        // 給對象添加方法 var fun = function(){ };  // 定義函數對象 fun.prototype.test = function(){      alert('這是在在foo函數上的原始對象上添加test方法,構造函數中用到'); }  // 調用 var myfun = new fun(); // 創建對象 myfun.test(); // 調用對象屬性

        通過prototype關鍵字添加方法。

        5. 自執行函數 ( function(){…} )() 和( function(){…} () )

        前面講的函數定義和調用時分開的,這里馬上講的定義和執行是一起進行的。

        ( function(){…} )() 和( function(){…} () ) 是 兩種javascript立即執行函數的常見寫法,最初我以為是一個括號包裹匿名函數,再在后面加個括號調用函數,最后達到函數定義后立即執行的目的,后來發現加括號的原因并非如此。要理解立即執行函數,需要先理解一些函數的基本概念。

        函數聲明、函數表達式、匿名函數

        函數聲明:function fnName () {…};使用function關鍵字聲明一個函數,再指定一個函數名,叫函數聲明。

        函數表達式 var fnName = function () {…};使用function關鍵字聲明一個函數,但未給函數命名,最后將匿名函數賦予一個變量,叫函數表達式,這是最常見的函數表達式語法形式。

        匿名函數:function () {}; 使用function關鍵字聲明一個函數,但未給函數命名,所以叫匿名函數,匿名函數屬于函數表達式,匿名函數有很多作用,賦予一個變量則創建函數,賦予一個事件則成為事件處理程序或創建閉包等等。

        函數聲明和函數表達式不同之處在于

        一、Javascript引擎在解析javascript代碼時會‘函數聲明提升’(Function declaration Hoisting)當前執行環境(作用域)上的函數聲明,而函數表達式必須等到Javascirtp引擎執行到它所在行時,才會從上而下一行一行地解析函數表達式,

        二、函數表達式后面可以加括號立即調用該函數,函數聲明不可以,只能以fnName()形式調用 。以下是兩者差別的兩個例子。

        // 方式1: ( function(){…} () ) (      function(){alert('hello world, I am coming');}() ); // 函數有參數的情況,有時為確保執行,前面加; // 看到別人的插件,你會發現人家開頭處加了一個";",這樣就算頁面js有錯誤,加載運行他的插件也能保證運行,如: ;(function(e){alert(e);}('hello world'));  // 方式2:( function(){…} )() (function(){alert('hello');})();  // 有時在前面加運算符,常見的是!與void !function(){alert('hello');}(); void function(){alert(2);}();

        6 $(function(){})寫法

        $ (function(){/…/});是 $(document).ready(function(){/…/})的簡寫形式,是在DOM加載完成后執行的回調函數,并且只會執行一次。

        $( document ).ready(function() {    console.log( "ready!" ); });

        與如下寫法等價

        $(function() {    console.log( "ready!" ); });

        在一個頁面中不同的js中寫的$(function(){/…/});函數,會根據js的排列順序依次執行。

        【推薦學習:javascript高級教程】

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 在线观看日韩精品| 久久国产精品二国产精品| 国产一区二区精品久久岳| 人妻少妇精品视中文字幕国语| 91精品国产高清久久久久久91 | 99精品国产一区二区三区| 伊人久久精品无码二区麻豆| 精品人妻伦九区久久AAA片69| 午夜精品美女自拍福到在线| 国产日韩精品中文字无码| 亚洲精品无码久久久久| 久久久人妻精品无码一区| 国产精品毛片a∨一区二区三区| 国产suv精品一区二区33| 全球AV集中精品导航福利| 亚洲国产婷婷综合在线精品| 国产精品制服丝袜亚洲欧美| 97久久精品人人做人人爽| 亚洲成人精品久久| 天天爽夜夜爽精品视频app| 久久91精品国产91久久麻豆 | 无码人妻精品中文字幕免费| 网友偷拍日韩精品| 无码人妻精品一区二区蜜桃百度 | 99在线精品视频在线观看| 欧美精品v欧洲精品| 亚洲Av无码精品色午夜| 亚洲国产精品无码久久| 亚洲国产精品无码一线岛国| 亚洲国产精品一区第二页| 亚洲AV永久无码精品| 一本一本久久a久久综合精品蜜桃| 麻豆精品视频在线观看| 精品久久久久久国产免费了| 国亚洲欧美日韩精品| 久久精品成人欧美大片| 欧美亚洲日本久久精品| 亚洲精品高清一二区久久| 中文字幕乱码中文乱码51精品| 亚洲精品自产拍在线观看| 青青草原精品国产亚洲av|