美文网首页
阅读大神博客的记录

阅读大神博客的记录

作者: 吴高亮 | 来源:发表于2019-02-16 22:02 被阅读0次

    关于堆栈:
    栈:后进先出;
    堆:堆数据结构类似书架的结构;跟进入先后无关系;是一种无序序列的集合;
    队列:是指js中的事件执行顺序;这个和自行的上下文有关系;就是在函数执行过后就被回收;先进先执行;执行过等待被回收;
    读取后的一下看法;js单线程;按照从上到下的顺序执行;在执行到某个地方后就;就是出现栈的存储操作;首先需要提的就是代码分为编译阶段和执行阶段;在编译的阶段确定执行的上下文;创建变量;确定执行上下文;创建作用域;确定this的执行;
    执行阶段;变量赋值;函数调用;执行其他代码;然后结束后就是等待回收;
    this的指向方面;是在函数被调用的时候确定;一般都说谁调用this指向谁;
    在全局中很明确this是指向window的;所以函数在执行的时候实际上是调用window.变量;
    函数中的this;

    var a=0;
    function foo(){
       console.log(this.a);
    };
    foo();
    这个比较好理解;再往下看一个例子;
    var a=20;
    function fn(){
       function foo(){
        console.log(this.a);
       };
      foo()
    };
    fn();//这个foo中的thi还是指向window的;
    这个需要一定的解释;
    在一个函数上下文中,this由调用者提供,由调用函数的方式来决定。
    如果调用者函数,被某一个对象所拥有,那么该函数在调用时,
    内部的this指向该对象。如果函数独立调用,那么该函数内部的this,
    则指向undefined。但是在非严格模式中,当this指向undefined时,它会被自动指向全局对象。
    
    
    image.png

    通过new操作符调用构造函数,会经历以下4个阶段。

    创建一个新的对象;
    将构造函数的this指向这个新对象;
    指向构造函数的代码,为这个对象添加属性,方法等;
    返回新对象。

    相关文章

      网友评论

          本文标题:阅读大神博客的记录

          本文链接:https://www.haomeiwen.com/subject/fykieqtx.html