【笔记】JavaScript - 关于面向对象的一些基本概念知识

关于构造函数和普通函数底层运行原理的对比

  • 普通函数
  • 普通执行时形成一个独立的私有上下文;在私有上下文中有用于保存私有变量的活动对象AO
  • 初始化作用域链
  • 初始化this
  • 初始化arguments
  • 形参赋值
  • 变量提升
  • 代码执行
  • 返回值:return啥就是啥
  • 构造函数执行
  • 构造函数执行时同样也是先形成一个独立的私有上下文;在私有上下文中有用于保存私有变量的活动对象AO
  • 与普通函数不同的是:构造函数在形成私有上下文后,浏览器会默认创建一个实例对象(当前构造函数的实例)
  • 初始化this,并让this指向上一步中创建好的实例对象
  • 初始化arguments
  • 形参赋值
  • 变量提升
  • 代码执行
  • 函数返回值:
    • 如果没有返回值或返回值是一个基本类型值,则浏览器会忽略其返回值而是把创建的实例对象作为返回值返回
    • 如果返回值是一个引用类型值,则浏览器会把这个引用类型值作为返回值返回

在这里插入图片描述

关于构new造函数加括号和不加括号的对比

  • new Fn VS new Fn()
  • 相同点:两种方式都是把函数Fn执行
  • 不同点:
    • new Fn 没有传递实参; 并且运算符优先级是18
    • new Fn():可以传递实参;并且运算符优先级是19

关于获取对象属性的一些总结

在这里插入图片描述

检测对象的成员是一个公有属性

在这里插入图片描述

关于对象中的原型和原型链的一些细节知识

在这里插入图片描述

函数的多种角色

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值