• js 执行上下文,this指向


    执行上下文的创建过程

    执行代码之前,进入创建上下文阶段:

    初始化作用域链;

    创建变量对象:

    1.创建argumens对象,初始化参数名称和值并创建引用的复制;

    2.扫描上下文的函数声明(而非函数表达式):

    为发现的每一个函数,在变量对象上创建一个属性,属性名就是函数的名字,保存一个函数在堆内存中的引用;

    如果该属性名已经存在,引用指针将被重写。

    3.扫描上下文的变量声明: 为发现的每一个变量声明,在变量对象上创建一个属性,属性名就是变量的名字,并将变量的值初始化为undefined; 如果该属性名已经存在,将不会进行任何操作并继续扫描。 计算上下文内部this的值。

    this用法总结

    全局环境下的 this 指向全局本身;

    独立调用的函数中的 this 指向 undefined;

    函数调用时如果被某一个对象所拥有,那么函数内部的 this 指向该对象;

    函数调用时如果使用了 call/apply/bind 方法,那么函数内部的 this 指向传入的对象;

    构造函数和原型方法上的 this 指向使用 new 方法返回的实例对象;

    箭头函数中 this 的绑定取决于外层作用域(全局或函数)。

  • 相关阅读:
    XCode9打包上传遇到的问题
    iOS Category
    ios view生成图片
    xcode8 注释快捷键不能用的解决办法
    warning: templates not found
    Quartz 2D编程指南
    关于键盘输入中文控制字数 (找了很久,最好的写法)真是完美
    小知识
    UIView 的hitTest 添加屏蔽层 但不影响下一层操作
    ios 绘制不规则 图形
  • 原文地址:https://www.cnblogs.com/gudun/p/10881966.html
Copyright © 2020-2023  润新知