Javascript-基本知識(shí)(六)

1. 閉包

1 閉包的作用:

延長(zhǎng)變量的生命周期架谎;
提供一種間接訪問函數(shù)封閉空間內(nèi)部數(shù)據(jù)的方法讲冠。
保護(hù)數(shù)據(jù)讓代碼更安全和穩(wěn)定先鱼。

2 setTimeOut和閉包:

js本身是單線程俭正。

單線程的局限性:執(zhí)行多個(gè)任務(wù)時(shí),只能串行的執(zhí)行任務(wù)型型。

js的主要任務(wù)(優(yōu)先順序):
    (1)渲染任務(wù)
    (2)腳本中的主要代碼
    (3)事件處理任務(wù)(定時(shí)器事件|點(diǎn)擊事件等等)

因此在for循環(huán)中段审,setTimeout獲取不到i的值全蝶。

補(bǔ)充:

并發(fā)和并行的區(qū)別:
    并發(fā):多條線程同時(shí)執(zhí)行任務(wù)的現(xiàn)象闹蒜;
    并行:同時(shí)執(zhí)行多個(gè)任務(wù)的能力。

2. 函數(shù)

函數(shù)本質(zhì)上是一個(gè)對(duì)象抑淫,因此凡是可以使用對(duì)象的地方都可以使用函數(shù)绷落。函數(shù)可以作為其他函數(shù)的參數(shù)或返回值。

函數(shù)可以創(chuàng)建作用域始苇;也可以有自己的屬性和方法砌烁。

1 函數(shù)的創(chuàng)建:

函數(shù)聲明  function 函數(shù)名(參數(shù)){函數(shù)體}
表達(dá)式 
    var func = function(){};    //匿名的函數(shù)表達(dá)式
    var func = function name(){};   //命名的函數(shù)表達(dá)式
構(gòu)造函數(shù)        var func = new Function();

函數(shù).name:獲取函數(shù)的名稱

eg: var func01 = function(){};
    var func02 = function funcName(){};
    console.log(func01.name);   //火狐中  空
    console.log(func02.name);   //funcName

2 函數(shù)的回調(diào):函數(shù)可以作為參數(shù)或者返回值。

注意:函數(shù)作為參數(shù)進(jìn)行回調(diào)時(shí)催式,this指針問題

如果回調(diào)函數(shù)是某個(gè)對(duì)象的方法函喉,而該對(duì)象方法中使用了this指針,那么該方法作為回調(diào)函數(shù)來使用的時(shí)候荣月,this指針會(huì)改變管呵。、

通過在函數(shù)內(nèi)部對(duì)傳入的參數(shù)做修正this的處理即可哺窄。

eg: var name = "測(cè)試名稱";
    function demo(callBack){    //callBack是一個(gè)函數(shù)
    //callBack();       //callBack()調(diào)用   this->window   show 測(cè)試名稱
    //要想還讓this指向?qū)ο?需要call|apply
    callBack.call(obj);
    }
    var obj = {
        name:"張三",
        show:function(){
            console.log("show" + this.name);
        }
    }  
    demo(obj.show);     //通過callBack.call(obj);將this指向obj,   show 張三

3.惰性函數(shù)(自定義函數(shù))

【通過函數(shù)直接調(diào)用】在第二次調(diào)用函數(shù)的時(shí)候捐下,這個(gè)函數(shù)才被真正的定義。第一次調(diào)用萌业,知識(shí)做一些初始化的操作坷襟;

惰性函數(shù)缺點(diǎn):

(1)實(shí)現(xiàn)自我更新之后,會(huì)把之前函數(shù)上面的屬性丟失;

(2)把函數(shù)賦值給變量或者對(duì)象的方法之后生年,以變量或者對(duì)方法來調(diào)用婴程,就不會(huì)自我更新

eg:
     function foo(){
    //初始化操作
    console.log("foo");

    foo = function(){  
        console.log("foo foo");
    }
}
foo.des = "foo的描述信息";
// console.log(foo.des);
// foo();     //foo        //函數(shù)直接調(diào)用
// foo();     //foo foo
// foo();     //foo foo
// console.log(foo.des);   //undefined

var demo = foo;     //如果通過賦值給別的函數(shù)調(diào)用,就不會(huì)出現(xiàn)覆蓋問題
demo();   //foo
demo();     //foo
demo();     //foo
console.log(demo.des);  //foo的描述信息

4.即時(shí)對(duì)象初始化

寫法:

(1)提供一個(gè)對(duì)象{}
(2)在對(duì)象中提供一個(gè)初始化方法抱婉,用作初始化操作
(3)在對(duì)象外部添加()排抬,包裝成一個(gè)表達(dá)式
(4)直接使用.init()來進(jìn)行初始化處理

eg:
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末懂从,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蹲蒲,更是在濱河造成了極大的恐慌番甩,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件届搁,死亡現(xiàn)場(chǎng)離奇詭異缘薛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)卡睦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門宴胧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人表锻,你說我怎么就攤上這事恕齐。” “怎么了瞬逊?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵显歧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我确镊,道長(zhǎng)士骤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任蕾域,我火速辦了婚禮拷肌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旨巷。我一直安慰自己巨缘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布采呐。 她就那樣靜靜地躺著若锁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懈万。 梳的紋絲不亂的頭發(fā)上拴清,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音会通,去河邊找鬼口予。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涕侈,可吹牛的內(nèi)容都是我干的沪停。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼木张!你這毒婦竟也來了众辨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤舷礼,失蹤者是張志新(化名)和其女友劉穎鹃彻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妻献,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛛株,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了育拨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谨履。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖熬丧,靈堂內(nèi)的尸體忽然破棺而出笋粟,到底是詐尸還是另有隱情,我是刑警寧澤析蝴,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布害捕,位于F島的核電站,受9級(jí)特大地震影響嫌变,放射性物質(zhì)發(fā)生泄漏吨艇。R本人自食惡果不足惜躬它,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一腾啥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冯吓,春花似錦倘待、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至失尖,卻和暖如春啊奄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掀潮。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工菇夸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仪吧。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓庄新,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子择诈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容