冴羽 JavaScript 深入系列学习总结

一、原型与原型链

  • prototype:构造函数的 prototype 指向一个对象,这个对象是调用该 构造函数 创建出来的实例的 原型,每一个 JavaScript 对象(null 除外)在创建的时候就会与之”关联“另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型”继承“属性
  • constructor:原型指向构造函数,原型与实例的 constructor 属性指向构造函数,实例的 constructor 关联自 原型。
  • __ proto __:实例. __ proto __指向原型, __ proto __ 关联自 原型,可以理解成 Object.getProtoTypeOf(实例)
  • 疑问:console.log(Function. __ proto __ === Function.prototype) // true?
  • 原型链:实例a. __ proto __ 指向 原型对象A,原型对象A. __ proto __指向原型对象B,以此类推,直到指向 Object.prototype 指向的 null 停止查找,null 表示 ”没有对象“,即该处不应有值,而有这些原型组成的链就是原型链,当读取实例的属性时,如果找不到,就会沿着该实例的原型链进行逐层查找,知道查找到相应的属性值并返回,倘若没查到,则返回 undefined
    **

二、词法作用域和动态作用域

  • 作用域:指 程序源代码中 定义变量 的区域。作用域规定了 如何查找变量 ,即 确定当前执行代码对变量的访问权限。JavaScript 采用 词法作用域(lexical scoping),也就是 静态作用域
  • 静态作用域:即 词法作用域 ,函数的作用域在 函数定义的时候就决定了,函数的 词法作用域 ,先从函数自身内部开始查找属性,没有则 根据其书写的位置,查找上一层代码。JavaScript 函数的执行用到了作用域链,函数作用域链 是在 函数定义的时候创建的。
  • 动态作用域:(有空再写吧(||x_x))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值