麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

通過javascript的匿名函數來分析幾段簡單有趣的代碼

2024-09-06 12:45:33
字體:
來源:轉載
供稿:網友
1、簡單形式的封裝調用
代碼如下:
var userName = function() { return "jeff wong" } ();
alert(userName);


上面的代碼確實簡單,我們可以逐步分解成下面的寫法:
代碼如下:
var anonymousFunc = function() { return "jeff wong" }; //匿名函數
var name = anonymousFunc(); //執行該函數 返回人名
alert(name);


2、new 一下Function的形式(大寫Function)
代碼如下:
var a = new Object();
var b = new Function();
//alert(typeof (a)); //object
//alert(typeof (b)); //function
alert(a); //[object Object]
alert(b); //匿名函數
//alert(a == b); //false
//alert(a === b); //false



正如你所看到的那樣,我們new一個Object,變量a彈出的是[object Object],而new一個Function(注意,是大寫Function),b在彈出的時候,生成了匿名函數。 既然b是匿名函數,函數當然可以執行,我們可以繼續試試下面的代碼驗證自己的猜測:
代碼如下:
alert(b()); //undefined
alert(a()); //腳本錯誤 提示“缺少函數”



3、new 一下function也大有乾坤(小寫function)
(1)、簡單的空函數
代碼如下:
var func = new function() { };
alert(typeof (func)); //object
alert(func); //[object Object]
//alert(func()); //腳本錯誤 func不是函數



其實上面的代碼也就等價于下面的寫法:
代碼如下:
function anonymousClass() { } //匿名類
var instance = new anonymousClass();
alert(typeof (instance));//object
alert(instance); //[object Object]

[code]

(2)、函數帶個返回值的,也不是很難理解
[code]
var func = new function() { return "jeff wong" };
alert(typeof (func));
alert(func);
//alert(func()); //腳本錯誤 缺少函數



其實上面的代碼也就等價于下面的寫法:
代碼如下:
function anonymousClass() { return "jeff wong"; } //匿名類
var instance = new anonymousClass();
alert(typeof (instance));//object
alert(instance); //[object Object]


(3)、還是函數帶個返回值的,寫法稍微有點不同

下面的代碼請注意和(2)中的區分一下,因為接下來要重點討論的就是那一點點的不同書寫形式:
代碼如下:
var func = new function() { return new String("jeff wong"); };
alert(typeof (func)); //object 意料之中
alert(func); //這里?!
//alert(func()); //腳本錯誤 缺少函數



上面代碼的等價形式依然簡單:
代碼如下:
function anonymousClass() { return new String("jeff wong"); }
var instance = new anonymousClass();
alert(typeof (instance));
alert(instance);


已經運行看到結果了嗎?沒錯,第三種寫法我們在彈出func或者instance的時候,都出人意料地得到了一段字符串"jeff wong"。細心比較(2)和(3)中的代碼,除了return處的寫法稍有不同之外,兩處代碼幾乎完全一致,所以我們推斷,毫無疑問,是new String的形式讓我們的函數產生了意想不到的效果。 為什么會這樣呢?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲小视频在线播放 | 亚洲小视频在线播放 | 欧美日韩亚洲精品一区二区三区 | 午夜精品小视频 | 成人午夜在线观看视频 | 亚洲国产精品99 | 国产自在线| 成人在线97 | 手机在线看片国产 | 亚洲午夜免费 | 免费国产wwwwwww网站 | 精品影视一区二区 | 黄网站色成年大片免费高 | 日日艹夜夜艹 | 黄色18网站 | 羞羞视频免费网站日本动漫 | 国产在线观看91精品 | 91网页 | 特级黄色一级毛片 | 亚洲一级电影在线观看 | 黄污网站在线观看 | 日产精品久久久一区二区开放时间 | 99亚洲伊人久久精品影院红桃 | 免费a级观看 | 毛毛片在线看 | 久久亚洲精品久久国产一区二区 | 日本羞羞的午夜电视剧 | 龙的两根好大拔不出去h | 国产毛片网 | 热99精品视频 | 亚洲人成电影在线 | 27xxoo无遮挡动态视频 | 在线观看免费污视频 | 日本免费一区二区三区四区 | 毛片毛片 | 久久久国产一级片 | 一级做受毛片免费大片 | 7777欧美 | 亚洲免费在线看 | 亚洲精品成人久久 | 国产精品视频一区二区噜噜 |