23)

Javascript中级

1.作用域链:

  作用域:浏览器给js的一个生存环境(栈内存

  作用域链:js中的关键字,var和function都可以提前声明和定义,提前声明和定义的放在我们的内存地址(堆内存)中。然后js从上到下逐层执行,遇到变量就去内存地址查找是否存在这个变量,有就使用,没有就继续向父级作用域查找直到window下结束,这种查找机制叫作用域链。

  js代码中存在着大量的变量跟函数

2.This、

  1.this是js的一个关键字,指定一个对象然后去代替他

    函数内的this——函数外的this

    函数内this:指向行为发生的主体  函数外this:指向window没有意义

         function  chifan(){

                  console.log(this)

                  }

            banzhang.chifan()      banzhang就是这个函数的主体

    2. 函数内的this和函数在什么环境下定义没有关系,只和自己的主体有关。

    3. 主体怎么找?

        就看这个函数(方法)带不带 . 

        如果函数和方法执行带 .  那么this就指向 . 前面的对象 、

        如果不带 .   就指向window

    4. 自执行函数里面的this都指向window

        this和变量面试题,先找this的主体是谁,然后把它换成那个主体

    5. 给元素的某一个事件绑定方法,当事件触发时,执行绑定的方法,方法中的this指向当前元素

        function  fn(){

            console.log(this)

                }  

        document.getElementById(“div”). onclick=function(){

                      console.log(this)        ||  div   

                      fn()                || window

                                }

        document.getElementById(“div”). onclick=fn;

重点是函数套用的时候:

    不管他怎么定义,就看他执行时候的主体

 1.怎样查找变量和函数的归属

 2.怎样查找this的指向

      函数内部的this跟函数在哪定义没有关系,只跟在执行时的主体有关

      带. 的主体就是 . 前面的对象;不带 . 就是window

猜你喜欢

转载自www.cnblogs.com/xiaotaiyangye/p/9885818.html
23