中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

       javascript中(function{})()寫(xiě)法解析

      時(shí)間:2024-10-24 08:23:30 JavaScript 我要投稿
      • 相關(guān)推薦

       javascript中(function{})()寫(xiě)法解析

        javascript 中(function{})()這種寫(xiě)法什么意思?

        最近在整理javascript 學(xué)習(xí),發(fā)現(xiàn)這個(gè)問(wèn)題了 ,在網(wǎng)上發(fā)現(xiàn)這么個(gè)解釋 最清楚 最明白 ;

        (function(){})()

        相當(dāng)于先定義 function xx(){},后調(diào)用 xx();

        ()是最高優(yōu)先級(jí)的,所以先執(zhí)行function(){},

        這個(gè)定義了一個(gè)匿名函數(shù),等于xx=function(www.diannao114.cn){}

        接著就是調(diào)用xx()了;

        給個(gè)例子

        JScript codefunctionf1(a)

        { alert(a);

        functionf2(a)

        { returnfunction(){ alert(a); }

        }這里的var x=f2 就等于把函數(shù)傳遞給了f2,然后要執(zhí)行這個(gè)函數(shù),就必須加() 也就是x();

        也就是f2()

        還是(function f2(a){

        return function(){

        alert(a);

        另外還有一個(gè)問(wèn)題就是命名空間的問(wèn)題

        YY = YY||{};---聲明一個(gè)叫YY的命名空間(定義一個(gè)全局的變量)

        (function() {

        YY.Lang=function() {------聲明一個(gè)叫YY.Lang的命名空間(通過(guò)全局變量的增加屬性的方式把閉包里的對(duì)象傳到全局變量中,實(shí)現(xiàn)代碼封裝的效果)

        isUndefined: function(o) {

        return typeof o === 'undefined';

        isString: function(o) {

        return typeof o === 'string';

        ---調(diào)用方法

        alert(YY.Lang.isString('test me'));

        這時(shí)候就有人不明了,樓上為什么要加(function() { 和)(); 最外面的這兩行,有什么用啊?

        JScript codeYY=YY||{}; //---聲明一個(gè)叫YY的命名空間(定義一個(gè)全局的變量)

        function() { YY.Lang=function() {

        //------聲明一個(gè)叫YY.Lang的命名空間(通過(guò)全局變量的增加屬性的方式把閉包里的對(duì)象傳到全局變量中,實(shí)現(xiàn)代碼封裝的效果) isUndefined:function(o) {returntypeofo==='undefined'; },

        isString:function(o) {returntypeofo==='string'; } }; }

        //---調(diào)用方法

        alert(YY.Lang.isString('test me'));

        疑問(wèn)在這: 注釋掉這兩行有什么不一樣的呢?不就是申明嗎,為什么要用()()執(zhí)行一下啊?

        答:

        (function(){})()意思是立即執(zhí)行前一個(gè)括號(hào)里的function,相當(dāng)于是一個(gè)匿名函數(shù);由于里面的代碼的執(zhí)行,定義了YY.Lang這個(gè)對(duì)象,所以可以執(zhí)行alert(YY.Lang.isString('test me'));調(diào)用isString方法。

        但是,如果按照你寫(xiě)的

        functionaa(){..};//只是定義了一個(gè)叫aa的函數(shù),但是并沒(méi)有執(zhí)行

        alert(YY.Lang.isString('test me'));//執(zhí)行的時(shí)候會(huì)報(bào)找不到isString的方法。

        這么寫(xiě)有什么好處??

        (function{})()的寫(xiě)法有個(gè)好處,就是能很好的利用javascript的變量的可見(jiàn)范圍為執(zhí)行腳本時(shí)節(jié)省空間。例如以下寫(xiě)法1和寫(xiě)法2達(dá)到的目的是一樣的,但是寫(xiě)法1的由于a變量的可見(jiàn)范圍只是在匿名函數(shù)體內(nèi),所以a在執(zhí)行完這個(gè)匿名函數(shù)后就釋放空間了。但是寫(xiě)法2會(huì)一直存在該頁(yè)面中。

        寫(xiě)法1:

        JScript code(function(){vara=2; alert(a); })();

        寫(xiě)法2:

        JScript codevara=2; alert(a);

      【 javascript中(function{})()寫(xiě)法解析】相關(guān)文章:

      IE與Firefox在JavaScript上的不同寫(xiě)法小結(jié)07-22

      JavaScript中的with關(guān)鍵字07-24

      在Java中執(zhí)行JavaScript代碼07-14

      Javascript中typeof 用法歸納09-27

      抽象語(yǔ)法樹(shù)在JavaScript中的應(yīng)用08-18

      JavaScript中的三種對(duì)象10-24

      perl- javascript中class的機(jī)制05-03

      JavaScript中push(),join() 函數(shù)實(shí)例詳解09-05

      詳解JavaScript中的splice()使用方法08-20

      javascript中for/in循環(huán)以及常見(jiàn)的使用技巧06-24

      主站蜘蛛池模板: 国产一区二区三区白浆在线观看 | 亚洲熟妇中文字幕五十av| 国产chinese在线视频| 蜜桃av多人一区二区三区| 亚洲黄色性生活一级片| 91久久国产福利自产拍| 安多县| 久久dvd| 久久久亚洲欧洲日产国码是AV| 欧美激情国产一区在线不卡| 99热高清亚洲无码| 息烽县| h动漫尤物视频| 淫欲一区二区中文字幕| 午夜一区二区三区av| 精品黑人一区二区三区| 久久青青草视频免费观看| 遂溪县| 盈江县| 垫江县| 治多县| 人妻少妇人人丰满视频网站| 天堂av一区二区在线观看| 亚洲av网站首页在线观看| 精品日本一区二区视频| 亚洲av激情综合在线| 亚洲大尺度视频在线看| 一二三四中文字幕日韩乱码| 汪清县| 繁峙县| AV无码专区亚洲AVL在线观看 | 无码成人AV在线一区二区| 在线观看国产精品自拍| 亚欧同人精品天堂| 人妻精品一区二区免费| 伊人色综合九久久天天蜜桃| 亚洲国产字幕| 兴海县| 阿巴嘎旗| 国产九色蝌蚪91av在线观看| 亚洲国产精品久久久性色av|