• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2.  javascript中(function{})()寫法解析

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

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

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

          最近在整理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方法。

          但是,如果按照你寫的

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

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

          這么寫有什么好處??

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

          寫法1:

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

          寫法2:

          JScript codevara=2; alert(a);

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

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

        IE與Firefox在JavaScript上的不同寫法小結(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

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 最新成免费人久久精品 | 日本亚洲欧美另类在线图片区 | 亚洲欧美在线另类 | 亚洲成在人线在线播放器 | 日本伦精品一区二区三区免费 | 天天夜夜综合色鬼久久 |

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

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

              最近在整理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方法。

              但是,如果按照你寫的

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

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

              這么寫有什么好處??

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

              寫法1:

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

              寫法2:

              JScript codevara=2; alert(a);