前端周记20190211-20190215

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

    原文作者:Mandy
    原文地址: https://segmentfault.com/a/1190000018168246
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞