欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

JavaScript

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

時間:2024-10-20 01:37:48 JavaScript 我要投稿
  • 相關推薦

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

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

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

  (function(){})()

  相當于先定義 function xx(){},后調用 xx();

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

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

  接著就是調用xx()了;

  給個例子

  JScript codefunctionf1(a)

  { alert(a);

  functionf2(a)

  { returnfunction(){ alert(a); }

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

  也就是f2()

  還是(function f2(a){

  return function(){

  alert(a);

  另外還有一個問題就是命名空間的問題

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

  (function() {

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

  isUndefined: function(o) {

  return typeof o === 'undefined';

  isString: function(o) {

  return typeof o === 'string';

  ---調用方法

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

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

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

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

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

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

  //---調用方法

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

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

  答:

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

  但是,如果按照你寫的

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

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

  這么寫有什么好處??

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

  寫法1:

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

  寫法2:

  JScript codevara=2; alert(a);

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

如何調試javascript腳本呢07-19

javascript跨域訪問的方法07-19

廣告設計中的專業(yè)術語解析11-30

大學英語作文:幽默的作用(The Function of Humor)(精選11篇)12-02

Excel中設置顯示當前的時間日期序號方法解析07-22

小升初數(shù)學的讀寫法總結09-04

武術禮儀解析07-23

武術分類解析12-05

holiday的詞匯解析06-11

演講的技巧解析04-19