日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Javascript匿名函数

發布時間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript匿名函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ü? 定義

匿名函數的定義非常簡單:就是沒有名字的函數。但是其用途非常的大

ü? 典型的函數定義方式

在看匿名函數之前我們先看下在Javascript中定義一個函數比較典型的幾種方式

  1. 函數聲明
    function functionName(args) {
    //函數體
    }
  2. 函數表達式
    var functionName = function (args) {//函數體
    }

函數聲明與函數表達式的區別:

  1. 函數聲明會在任何代碼執行以前被加載到作用域
  2. 函數表達式則是在代碼執行到那一行的時候才會有定義

例如:

  <script language="javascript" type="text/javascript">func1(); //已加載
        function func1() {alert('已加載');}alert(func2);//undefinedvar func2 = function () {alert("還未加載");}func2(); //還未加載</script>

那么在函數聲明會給函數指定一個名字,而函數表達式則是創建一個匿名函數,原后將函數賦值一個變量,這個變量就指向了這個函數。

ü? 匿名函數常用調用方式

定義一個匿名函數如下:

function(x, y, z) {return x + y + z;
}

   以上匿名函數沒有名字,那么誰也不可能調用這個函數,因為沒有指向這個函數的指針,我們可以像下面這樣的方式調用匿名函數

  1. 直接調用
    var result = function (x, y, z) {return x + y + z;
    }(1,2,3)
  2. 將函數賦值給變量(如上函數表達式方式)

Javascript中允許有兩種方式調用函數,第一種就是典型的函數調用:函數名(函數參數列表),另一種方式是將函數作為表達式:(用函數作為表達式)(參數列表)

比如上例中可以這樣調用

1.    (func1)()
2.    ( function (x, y, z) { return x + y + z; })()

?

ü? 匿名函數的常用法

   ?1:四則運算

      /* 四則運算 */var fourOperations = function (fn, x, y) {return fn(x, y);}var add = function (x, y) {return x + y;}alert(fourOperations(add, 10, 20));alert(fourOperations(function (x, y) {return x * y;}, 10, 20));

2:復雜對象數組的排序

在看復雜對象排序之前我們先來看下簡單的數組排序

a.簡單數組排序

        /* 數組排序 */var person1 = ["cnblog", "abc", "def", "cx"];person1.sort();alert(person1);

      ? 在默認情況下,sort排序按升序排列數組項,排序過程中首先會調用項的toString()方法,原后比較得到的字符串。

?

      ? b.復雜數組排序

     /* 定義復雜對象 */function Person(name, age) {this.name = name;this.age = age;}Person.prototype.toString = function () {return "name: " + this.name + " age: " + this.age;}/* 初始化數組 */var person = [new Person("cnblog", 25),new Person("abc", 30), new Person("def", 26), new Person("cx", 31)];/* 直接使用匿名函數來進行排序 */person.sort(function (value1, value2) { return value1.name > value2.name ? 1 : -1; });alert(person);/* 改進排序方式 */person.sort(sortFunction("age"));alert(person);//        function showSortResult(person) {//            var result = "";//            for (var i = 0, length = person.length; i < length; i++) {//                result += ("name:" + person[i].name + " age:" + person[i].age + "\r\n");//            }//            alert(result);//        }function sortFunction(property) {return function (value1, value2) {return value1[property] > value2[property] ? 1 : -1;}}

?    對于復雜對象的操作在實際應用中是相當常見的,例如在對json對象進行排序時就可以使用上面的方法。

    3.利用匿名函數構建“塊級作用域”,這個留著在講作用域時再細講

當然匿名函數的作用很多,也歡迎大家分享自己的一些實戰經驗

?

注:第一篇技術文章,多支持

轉載于:https://www.cnblogs.com/Latitude/archive/2012/04/21/2461304.html

總結

以上是生活随笔為你收集整理的Javascript匿名函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。