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

資訊專欄INFORMATION COLUMN

深入淺出Javascript:面向對象之閉包

instein / 2210人閱讀

摘要:理解閉包概念閉包是指有權訪問另一個函數作用域中的變量的函數。閉包在執行后,仍然可以訪問內部的,因為將的內的活動對象添加到了的作用域鏈。閉包的應用監聽事件事件錯誤的使用循環使用閉包封裝函數,便于使用私有變量。

理解閉包 概念

閉包是指 有權訪問另一個函數作用域中的變量的 函數。

函數式閉包(在內部保存數據和對外部無副作用)

創建方法

在一個函數內部創建另一個函數(閉包)

原理

普通函數:在outer()執行完,局部變量local被銷毀,內存僅僅保存全局作用域。

function outer() {
    var localVal = 30;
    return localVal;
}
outer(); // 30

閉包:在outer()執行后,func()仍然可以訪問outer()內部的localVal,因為func()將outer()的內的活動對象(localVal)添加到了func()的作用域鏈。在outer()執行后,由于localVal被func()的作用域鏈所引用,所以localVal不會被銷毀,而是存在內存中,直到func()被銷毀,才會隨之銷毀。

function outer() {
    var localVal = 30;
    return function() {
        return localVal;
    }
}
var func = outer();
func(); // 30
閉包的應用

監聽事件

!function() {
    var localData = "localData here";
    document.addEventListener("click",
        function() {
            console.log(localData);
        }
    );
}();

ajax事件

!function() {
    var localData = "localData here";
    var url = "http://www.baidu.com/";
    $.ajax({
        url: url;
        success: function() {
            console.log(localData);
        }
    });
}();
錯誤的使用

循環

使用閉包封裝函數,便于使用私有變量。 閉包的好壞

好處:靈活方便,封裝

壞處:空間浪費,內存泄漏(循環引用),性能消耗

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

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

相關文章

  • JavaScript深入淺出

    摘要:理解的函數基礎要搞好深入淺出原型使用原型模型,雖然這經常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統的類繼承還要強大。中文指南基本操作指南二繼續熟悉的幾對方法,包括,,。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家帶來幫助....(據說是阿里的前端妹子寫的) this 的值到底...

    blair 評論0 收藏0
  • 面向對象JavaScript

    摘要:是完全的面向對象語言,它們通過類的形式組織函數和變量,使之不能脫離對象存在。而在基于原型的面向對象方式中,對象則是依靠構造器利用原型構造出來的。 JavaScript 函數式腳本語言特性以及其看似隨意的編寫風格,導致長期以來人們對這一門語言的誤解,即認為 JavaScript 不是一門面向對象的語言,或者只是部分具備一些面向對象的特征。本文將回歸面向對象本意,從對語言感悟的角度闡述為什...

    novo 評論0 收藏0
  • JS程序

    摘要:設計模式是以面向對象編程為基礎的,的面向對象編程和傳統的的面向對象編程有些差別,這讓我一開始接觸的時候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續了解設計模式必須要先搞懂面向對象編程,否則只會讓你自己更痛苦。 JavaScript 中的構造函數 學習總結。知識只有分享才有存在的意義。 是時候替換你的 for 循環大法了~ 《小分享》JavaScript中數組的那些迭代方法~ ...

    melody_lql 評論0 收藏0
  • JavaScript系列(四) - 收藏集 - 掘金

    摘要:函數式編程前端掘金引言面向對象編程一直以來都是中的主導范式。函數式編程是一種強調減少對程序外部狀態產生改變的方式。 JavaScript 函數式編程 - 前端 - 掘金引言 面向對象編程一直以來都是JavaScript中的主導范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數式編程越來越多得受到開發者的青睞。函數式編程是一種強調減少對程序外部狀態產生改變的方式。因此,...

    cfanr 評論0 收藏0
  • javasscript - 收藏集 - 掘金

    摘要:跨域請求詳解從繁至簡前端掘金什么是為什么要用是的一種使用模式,可用于解決主流瀏覽器的跨域數據訪問的問題。異步編程入門道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 jsonp 跨域請求詳解——從繁至簡 - 前端 - 掘金什么是jsonp?為什么要用jsonp?JSONP(JSON with Padding)是JSON的一種使用模式,可用于解決主流瀏覽器的跨域數據訪問的問題...

    Rango 評論0 收藏0

發表評論

0條評論

instein

|高級講師

TA的文章

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