国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS函數的一些基礎知識

Ashin / 2767人閱讀

摘要:為了更好的講解構造函數原型原型鏈等,我們需要復習一下函數的一些基礎知識。閉包在復習了函數的相關基礎知識之后,我們終于可以進入閉包。我們可以這樣理解閉包,首先,閉包是一個函數,是一個什么樣子的函數呢是一個可以訪問另一個函數中變量的函數。

為了更好的講解構造函數、原型、原型鏈等,我們需要復習一下函數的一些基礎知識。接下來,就讓我們一起回味一些JS的基礎知識點。

全局變量VS局部變量

簡單粗暴的來說,全局/局部變量就是:
1)全局變量:函數外部聲明,或者不使用var關鍵字,在運行的任何地方都可以引用。
2)局部變量:函數內部聲明,且實用var關鍵字,只能在函數內部引用。
如:

1)var a = 10;//全局變量
2)function test(){
    a = 10;//全局變量
}
3)function test(){
    var a = 10;//局部變量
}

當然,我們也可以實用bind()、call()、apply()等方法改變運行環境。
詳情可以查閱:
1)bind()
2)call()
3)apply()

arguments

函數的arguments是一個對象,非數組,而是一個類數組的對象,包含lenth屬性,適用于動態參數的場景,不建議濫用,因為它會影響你代碼的可讀性。

function add(a,b){
    return arguments[0]+arguments[1];//相當于return a+b;
}
add(1,2);//3
this指針

如果this在全局作用于下,那么this指向window。如果this在對象的方法中,則指向該對象。

window.name = "wuhuiming";
var i = {
    name:"huimingwu"
};
function sayName(){
    console.log(this.name);
}
sayName();//wuhuiming
i.sayName = sayName;
i.sayName();//huimingwu
函數的屬性

函數有三個屬性:name、length和prototype。其中,length又與arguments.length有一點點的區別,即:length與arguments.length:前一個為函數的length,在聲明時確定,后一個為arguments的length,根據調用時傳遞的值確定。

閉包

在復習了函數的相關基礎知識之后,我們終于可以進入閉包。作為一個前端開發者,看見閉包,是否就立刻興奮了呢?閉包又是什么呢?接下來,讓我們走進閉包的世界。

什么是閉包?

在 JavaScript高級程序設計 一書中,閉包是這樣被描述的——“閉包是指有權訪問另一個函數作用域中的變量的函數”。我們可以這樣理解閉包,首先,閉包是一個函數,是一個什么樣子的函數呢?是一個可以訪問另一個函數中變量的函數。

閉包的簡單案例
function test(){
    var i = "Hello World";
    function test2() {
        return i;
    }
    return test2;
}

var test = test();
test();//Hello World

以上就是一個閉包的簡單案例,test2是一個函數,是一個什么樣的函數呢?它是一個可以訪問父函數test作用域中變量i的函數,就這樣,一個簡單的閉包就產生了。

當然,閉包的應用還有很多很多很多,如Jquery的封裝方式就是采用了閉包,有興趣的小伙伴可以去圍觀圍觀Jquery的源碼。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93189.html

相關文章

  • JS基礎知識:變量對象、作用域鏈和閉包

    摘要:前言這段時間一直在消化作用域鏈和閉包的相關知識。而作用域鏈則是這套規則這套規則的具體運行。是變量對象的縮寫那這樣放有什么好處呢我們知道作用域鏈保證了當前執行環境對符合訪問權限的變量和函數的有序訪問。 前言:這段時間一直在消化作用域鏈和閉包的相關知識。之前看《JS高程》和一些技術博客,對于這些概念的論述多多少少不太清楚或者不太完整,包括一些大神的技術文章。這也給我的學習上造成了一些困惑,...

    Keven 評論0 收藏0
  • MongoDB指南---4、MongoDB基礎知識-使用MongoDB Shell

    摘要:也可以在中使用函數來執行命令行程序。注意,這種方式并不能保護數據庫免受惡意用戶的攻擊,只能預防自己的手誤。必須使用語法才能將解釋為相應的變量。上一篇文章指南基礎知識數據類型下一篇文章指南創建刪除文檔 上一篇文章:MongoDB指南---3、MongoDB基礎知識-數據類型下一篇文章:MongoDB指南---5、創建、刪除文檔 本節將介紹如何將shell作為命令行工具的一部分來使用,如...

    mykurisu 評論0 收藏0
  • MongoDB指南---4、MongoDB基礎知識-使用MongoDB Shell

    摘要:也可以在中使用函數來執行命令行程序。注意,這種方式并不能保護數據庫免受惡意用戶的攻擊,只能預防自己的手誤。必須使用語法才能將解釋為相應的變量。上一篇文章指南基礎知識數據類型下一篇文章指南創建刪除文檔 上一篇文章:MongoDB指南---3、MongoDB基礎知識-數據類型下一篇文章:MongoDB指南---5、創建、刪除文檔 本節將介紹如何將shell作為命令行工具的一部分來使用,如...

    wujl596 評論0 收藏0
  • 翻譯連載 |《你不知道JS》姊妹篇 |《JavaScript 輕量級函數式編程》- 引言&前言

    摘要:我稱之為輕量級函數式編程。序眾所周知,我是一個函數式編程迷。函數式編程有很多種定義。本書是你開啟函數式編程旅途的絕佳起點。事實上,已經有很多從頭到尾正確的方式介紹函數式編程的書了。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson - 《You-Dont-Know-JS》作者 譯者團隊(排名不分先后):阿希、blueken、brucecham、...

    2bdenny 評論0 收藏0
  • 【連載】前端個人文章整理-從基礎到入門

    摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現在已經一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現將已經寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...

    madthumb 評論0 收藏0

發表評論

0條評論

Ashin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<