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

資訊專(zhuān)欄INFORMATION COLUMN

用內(nèi)存空間圖理解javascript變量存儲(chǔ)機(jī)制,深度理解閉包

The question / 1283人閱讀

摘要:對(duì)于下面的代碼,它們?cè)趦?nèi)存中是怎樣分配的呢賦值運(yùn)算符,賦的是內(nèi)存地址函數(shù)就在函數(shù)方法定義區(qū)函數(shù)調(diào)用時(shí)在函數(shù)方法緩存區(qū)占用內(nèi)存變量名存在棧內(nèi)存中,無(wú)名函數(shù)在函數(shù)方法定義區(qū)函數(shù)存在函數(shù)定義區(qū)關(guān)鍵字代表后面的內(nèi)存創(chuàng)建在堆中變量里面存的地址是堆中的

對(duì)于下面的script代碼,它們?cè)趦?nèi)存中是怎樣分配的呢?

var a = 123; // 賦值運(yùn)算符,賦的是內(nèi)存地址
var b = "hello";

function f() {} // 函數(shù)f就在函數(shù)(方法)定義區(qū)
f(); // 函數(shù)調(diào)用時(shí)在函數(shù)(方法)緩存區(qū)占用內(nèi)存

var f1 = function() {} // 變量名f1存在棧內(nèi)存中,無(wú)名函數(shù)在函數(shù)(方法)定義區(qū)

function Person(){} // 函數(shù)Person存在函數(shù)定義區(qū)

var p = new Person(); // new關(guān)鍵字代表后面的內(nèi)存創(chuàng)建在堆中
var n = null; // 變量里面存的地址是堆中的null對(duì)象
var u = undefined; // 變量里面沒(méi)有存地址

typeof xx === "object";// 堆中
typeof xx === "function";// 函數(shù)(方法)緩存區(qū)
typeof xx === "number";// 池(常量)
typeof xx === "string";// 池(常量)
typeof xx === "boolean";// 池(常量)
typeof xx === "undefined";// 棧中
內(nèi)存圖

下面是對(duì)應(yīng)的內(nèi)存圖:

閉包

閉包:在函數(shù)緩存區(qū)有永久的生命周期
通過(guò)調(diào)用一個(gè)函數(shù),讓它在函數(shù)緩存區(qū)有永久的生命周期

(function(factory){
    window.a = factory.apply(this);
})(function(){
    //閉包空間
    var a,b,c,d;
    var d = {};
    function f(){
    }
    return {};
})
window.a.a;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/103760.html

相關(guān)文章

  • 理解閉包

    摘要:我的理解就是還處于被引用狀態(tài)。內(nèi)存機(jī)制的內(nèi)存空間分為棧堆其中棧存放變量,堆存放復(fù)雜對(duì)象。對(duì)堆內(nèi)數(shù)據(jù)進(jìn)行復(fù)制修改時(shí)理解閉包有了前面的鋪墊,我們?cè)賮?lái)看看閉包是怎么回事。這種反常的現(xiàn)象我們就叫它,中文名閉包。這就是閉包形成的原因了。 知識(shí)小儲(chǔ)備 ECMAScript 的數(shù)據(jù)有兩種類(lèi)型:基本類(lèi)型值和引用類(lèi)型值,基本類(lèi)型指的是簡(jiǎn)單的數(shù)據(jù)段,引用類(lèi)型指的是可能由多個(gè)值構(gòu)成的對(duì)象。Undefined...

    fox_soyoung 評(píng)論0 收藏0
  • 前端基礎(chǔ)進(jìn)階(一):內(nèi)存空間詳細(xì)

    摘要:一棧數(shù)據(jù)結(jié)構(gòu)與不同,中并沒(méi)有嚴(yán)格意義上區(qū)分棧內(nèi)存與堆內(nèi)存。引用數(shù)據(jù)類(lèi)型的值是保存在堆內(nèi)存中的對(duì)象。不允許直接訪問(wèn)堆內(nèi)存中的位置,因此我們不能直接操作對(duì)象的堆內(nèi)存空間。為了更好的搞懂變量對(duì)象與堆內(nèi)存,我們可以結(jié)合以下例子與圖解進(jìn)行理解。 showImg(https://segmentfault.com/img/remote/1460000009784102?w=1240&h=683); ...

    _Suqin 評(píng)論0 收藏0
  • 前端基礎(chǔ)進(jìn)階(四):詳細(xì)解作域鏈與閉包

    摘要:之前一篇文章我們?cè)敿?xì)說(shuō)明了變量對(duì)象,而這里,我們將詳細(xì)說(shuō)明作用域鏈。而的作用域鏈,則同時(shí)包含了這三個(gè)變量對(duì)象,所以的執(zhí)行上下文可如下表示。下圖展示了閉包的作用域鏈。其中為當(dāng)前的函數(shù)調(diào)用棧,為當(dāng)前正在被執(zhí)行的函數(shù)的作用域鏈,為當(dāng)前的局部變量。 showImg(https://segmentfault.com/img/remote/1460000008329355);初學(xué)JavaScrip...

    aikin 評(píng)論0 收藏0
  • 一名【合格】前端工程師的自檢清單

    摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識(shí),其實(shí)都是來(lái)自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。 開(kāi)篇 前端開(kāi)發(fā)是一個(gè)非常特殊的行業(yè),它的歷史實(shí)際上不是很長(zhǎng),但是知識(shí)之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研...

    羅志環(huán) 評(píng)論0 收藏0
  • 一名【合格】前端工程師的自檢清單

    摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識(shí),其實(shí)都是來(lái)自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。開(kāi)篇 前端開(kāi)發(fā)是一個(gè)非常特殊的行業(yè),它的歷史實(shí)際上不是很長(zhǎng),但是知識(shí)之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系...

    isaced 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<