成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前端周記20190211-20190215

loonggg / 3251人閱讀

摘要:任務隊列是一個事件隊列,只要指定過回調(diào)函數(shù)的事件在事件發(fā)生時就會進入任務隊列?;卣{(diào)函數(shù)會被主線程掛起來的代碼,異步任務必須指定回調(diào)函數(shù)。

1、靜態(tài)公有方法

(function(){
    var privateVariable=10;
    function privateFunction(){
        return false;
    }
    MyObject=function(){}
    MyObject.prototype.publicMethod=function(){
        privateVariable++;
        return this;
    }
})();
var a=new MyObject();
console.log(a.publicMethod());

MyObject在私有作用域中在原型上掛載了一個公有方法,可以訪問私有作用域中的變量。
思考:原型上的函數(shù)的作用域含有被添加時的作用域。
2、js運行機制(Event Loop)
分為主線程和任務隊列,主線程為空時,會讀取任務隊列中的事件(代碼)。
任務隊列是一個事件隊列,只要指定過回調(diào)函數(shù)的事件在事件發(fā)生時就會進入任務隊列。
回調(diào)函數(shù):會被主線程掛起來的代碼,異步任務必須指定回調(diào)函數(shù)。
settimeout和setInterval是到設置的事件后才觸發(fā)回調(diào)函數(shù),也就是添加到任務隊列中。這里設置的時間是相對于在下一輪事件循環(huán)開始時的時間的間隔。這個時間是js執(zhí)行到settimeout這個語句開始計算。h5中對時間標準化,最小4ms,不足則補齊
通過閱讀Promise/A+規(guī)范,可以得知異步的實現(xiàn)可分為兩個機制,分別是macro-task和micro-task。
Macrotasks包括: script(整體代碼)、setTimeout, setInterval, setImmediate, I/O, UI Rendering;
Microtasks包括: process.nextTick, Promise, Object.observe, MutationObserver。
Macrotasks、Microtasks執(zhí)行機制:
1.主線程執(zhí)行完后會先到micro-task隊列中讀取可執(zhí)行任務
2.主線程執(zhí)行micro-task任務
3.主線程到macro-task任務隊列中讀取可執(zhí)行任務
4.主線程執(zhí)行macro-task任務
5....轉到Step 1
這里注意的是,UI Rendering是在micro-task之后執(zhí)行,需要在UI渲染之前執(zhí)行的邏輯,一般采用micro-task異步回調(diào)方式進行調(diào)用
5、說明this幾種不同的使用場景
作為構造函數(shù)執(zhí)行:指向new生成的對象
作為對象屬性執(zhí)行:指向調(diào)用的對象
作為普通函數(shù)執(zhí)行:指向調(diào)用的對象
作為回調(diào)函數(shù)執(zhí)行:指向調(diào)用時的上下文
settimeout和setInterval:指向調(diào)用時的上下文即window
閉包:指向當前函數(shù)
箭頭函數(shù):指向定義時的上下文
call、apply、bind

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

轉載請注明本文地址:http://systransis.cn/yun/101712.html

相關文章

  • Hyperledger Fabric周周記:起源

    摘要:作為系列的新篇章,我選擇從超級賬本的開始。為什么選擇超級賬本作為起點我在之前的文章中曾說過會從超級賬本入手開始區(qū)塊鏈的學習和實踐,同時也給出了個人的理由。檢查事務提議的響應。為了降低區(qū)塊鏈應用的開發(fā)難度,超級賬本項目又引入了。 本著以教帶學,Learning by Doing的想法,我于上周加入了Bob組織的HiBlock區(qū)塊鏈技術布道群。這個群可不太好混,群規(guī)要求每個成員必需每周有輸...

    hatlonely 評論0 收藏0
  • 學習周記

    摘要:所以后面還是要對著機器學習實戰(zhàn)這本書一行一行的手敲代碼,然后把每一行都弄懂,全部做完之后再做一遍,這樣才可能真正的熟悉起來。這段時間上下班的路上一直在用讀的微積分部分,一方面可以練習英文口語,另一方面可以學習如何從更加直觀的角度理解微積分。 2017-03-05記錄 這一周沒怎么有進度學習編程,主要是工作上占用了很多的時間,同時自己感覺也進入了一個平臺期,對于編程有些疲倦了。 首先是不...

    李世贊 評論0 收藏0
  • 程序人生之周記

    摘要:穿得薄的話早晚會冷,穿的厚了中午又會熱,這天真不知道穿啥了,愁人這周經(jīng)歷了雙十一薅羊毛大戰(zhàn),本來還想著出去買個襖呢,我來的時候沒帶襖去年買的那個太白了,穿幾天就得洗。 ...

    Michael_Lin 評論0 收藏0
  • Hyperledger Fabric周周記:Composer

    摘要:在上周周記的結尾,我曾經(jīng)說過本周要介紹的開發(fā)和應用。可在通讀完的文檔之后,我立即取消了原定計劃,直接介紹。讓其成為開發(fā)首選的理由只有一個對開發(fā)者友好。將發(fā)布到的暴露成,供外部調(diào)用,完全語言中立。而后者則是為測試而生的。 在上周周記的結尾,我曾經(jīng)說過本周要介紹Fabric的開發(fā)和應用。按照最開始的寫作計劃,我打算講講兩種開發(fā)模式:直接使用Fabric API和利用Composer框架???..

    quietin 評論0 收藏0
  • 基于RestOn智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)

    摘要:一項目地址為二項目功能概述該項目實現(xiàn)的是一個基于智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)。我們可以在個人中心的設置中心進行報警閾值的設定。睡眠自測試頁面如下圖所示用戶可以在該頁面進行睡眠自測試,點擊提交按鈕后,便可以在彈出框當中查看自己的睡眠質(zhì)量等級。 一、項目地址為: https://github.com/linqian123... 二、項目功能概述: 該項目實現(xiàn)的是一個基于RestOn智能睡眠...

    Java_oldboy 評論0 收藏0

發(fā)表評論

0條評論

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