You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中两段类代码的区别及实例对象差异探究

两段JavaScript代码的区别及实例对比

代码核心区别

  • 类的复用性与可访问性:
    第一段是匿名类的立即实例化,类定义后直接通过new (class {...})(...)生成实例,没有绑定到任何变量,后续无法再用这个类创建新实例,属于一次性使用的类。
    第二段是命名类Student,类被赋值给Student变量,可重复调用new Student(...)创建多个同类型实例,复用性高,且在其定义的作用域内可被其他代码引用。
  • 类的作用域范围:
    第一段的匿名类仅存在于当前实例化表达式的作用域中,外部无法直接引用该类的构造函数;第二段的Student类在其定义的作用域(如全局或函数作用域)内是公开可访问的。

实例对象x和y的差异

从实例的属性、行为来看,两者无本质功能差异:

  • 两个实例都包含firstName和lastName实例属性,属性值为各自传入的参数;
  • 两者都是Object的实例,调用x instanceof Object和y instanceof Object均返回true;
  • 细微差异:
    • x.constructor.name为空字符串(因类是匿名的),y.constructor.name为"Student";
    • 可以直接通过y instanceof Student判断实例类型,但无法直接写出x的类构造函数来做instanceof判断(只能通过x instanceof x.constructor)。

内容的提问来源于stack exchange,提问作者The beginner guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:45:45