摘要:任務隊列是一個事件隊列,只要指定過回調函數的事件在事件發生時就會進入任務隊列。回調函數會被主線程掛起來的代碼,異步任務必須指定回調函數。
1、靜態公有方法
(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在私有作用域中在原型上掛載了一個公有方法,可以訪問私有作用域中的變量。
思考:原型上的函數的作用域含有被添加時的作用域。
2、js運行機制(Event Loop)
分為主線程和任務隊列,主線程為空時,會讀取任務隊列中的事件(代碼)。
任務隊列是一個事件隊列,只要指定過回調函數的事件在事件發生時就會進入任務隊列。
回調函數:會被主線程掛起來的代碼,異步任務必須指定回調函數。
settimeout和setInterval是到設置的事件后才觸發回調函數,也就是添加到任務隊列中。這里設置的時間是相對于在下一輪事件循環開始時的時間的間隔。這個時間是js執行到settimeout這個語句開始計算。h5中對時間標準化,最小4ms,不足則補齊
通過閱讀Promise/A+規范,可以得知異步的實現可分為兩個機制,分別是macro-task和micro-task。
Macrotasks包括: script(整體代碼)、setTimeout, setInterval, setImmediate, I/O, UI Rendering;
Microtasks包括: process.nextTick, Promise, Object.observe, MutationObserver。
Macrotasks、Microtasks執行機制:
1.主線程執行完后會先到micro-task隊列中讀取可執行任務
2.主線程執行micro-task任務
3.主線程到macro-task任務隊列中讀取可執行任務
4.主線程執行macro-task任務
5....轉到Step 1
這里注意的是,UI Rendering是在micro-task之后執行,需要在UI渲染之前執行的邏輯,一般采用micro-task異步回調方式進行調用
5、說明this幾種不同的使用場景
作為構造函數執行:指向new生成的對象
作為對象屬性執行:指向調用的對象
作為普通函數執行:指向調用的對象
作為回調函數執行:指向調用時的上下文
settimeout和setInterval:指向調用時的上下文即window
閉包:指向當前函數
箭頭函數:指向定義時的上下文
call、apply、bind
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101712.html
摘要:作為系列的新篇章,我選擇從超級賬本的開始。為什么選擇超級賬本作為起點我在之前的文章中曾說過會從超級賬本入手開始區塊鏈的學習和實踐,同時也給出了個人的理由。檢查事務提議的響應。為了降低區塊鏈應用的開發難度,超級賬本項目又引入了。 本著以教帶學,Learning by Doing的想法,我于上周加入了Bob組織的HiBlock區塊鏈技術布道群。這個群可不太好混,群規要求每個成員必需每周有輸...
摘要:在上周周記的結尾,我曾經說過本周要介紹的開發和應用。可在通讀完的文檔之后,我立即取消了原定計劃,直接介紹。讓其成為開發首選的理由只有一個對開發者友好。將發布到的暴露成,供外部調用,完全語言中立。而后者則是為測試而生的。 在上周周記的結尾,我曾經說過本周要介紹Fabric的開發和應用。按照最開始的寫作計劃,我打算講講兩種開發模式:直接使用Fabric API和利用Composer框架。可...
摘要:一項目地址為二項目功能概述該項目實現的是一個基于智能睡眠監測器的睡眠監測系統。我們可以在個人中心的設置中心進行報警閾值的設定。睡眠自測試頁面如下圖所示用戶可以在該頁面進行睡眠自測試,點擊提交按鈕后,便可以在彈出框當中查看自己的睡眠質量等級。 一、項目地址為: https://github.com/linqian123... 二、項目功能概述: 該項目實現的是一個基于RestOn智能睡眠...
閱讀 1078·2021-11-25 09:43
閱讀 699·2021-11-22 14:45
閱讀 3825·2021-09-30 09:48
閱讀 1065·2021-08-31 09:41
閱讀 1974·2019-08-30 13:52
閱讀 1979·2019-08-30 11:24
閱讀 1347·2019-08-30 11:07
閱讀 956·2019-08-29 12:15