JavaScript - 构造函数执行和普通函数执行的区别

构造函数执行和普通函数执行的区别

普通函数执行

  • 形成一个全新的私有上下文
  • 初始化作用域链<自己的上下文, 上级上下文>
  • 初始化this
  • 初始化arguments
  • 形参赋值
  • 变量提升:var function
  • 代码执行
  • 默认返回undefined
    普通函数执行

构造函数执行

还是以上面的函数代码为例,result改为:let result = new Fn(10, 20);,构造函数设计模式【后台语言很多称之为单例模式】
“new”构造函数执行“标准面向对象的编程->构建自定义类”

  • Fn被称为类【构造函数】
  • result被称为当前类的一个实例。

构造函数执行

  • 形成一个全新的私有上下文
  • 初始化作用域链<自己的上下文, 上级上下文>
  • 默认创建一个空对象“实例对象”(不同1)
  • 初始化this:THIS指向创建的空对象
  • 初始化arguments
  • 形参赋值
  • 变量提升:var function
  • 代码执行:函数体中遇到的this.xxx=xxx操作,都是给实例对象设置私有的属性或者方法(上下文中的私有变量和实例对象没有任何关系,只有this.xxx才和其有直接关系)(不同2)
  • 默认返回创建的对象(如果函数不设置返回值或者返回的是原始值类型,则默认返回的结果是创建的实例对象,只有手动返回对象类型值,才以自己返回的为主)(不同3)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值