首页 > 编程语言 >[Javascript] Check whether a function is call with new

[Javascript] Check whether a function is call with new

时间:2024-10-08 14:43:58浏览次数:6  
标签:function target whether Javascript constructor new Foo

The new.target meta-property lets you detect whether a function or constructor was called using the new operator. In constructors and functions invoked using the new operator, new.target returns a reference to the constructor or function that new was called upon. In normal function calls, new.target is undefined.

 

function Foo() {
  if (!new.target) {
    throw new TypeError('calling Foo constructor without new is invalid');
  }
}

try {
  Foo();
} catch (e) {
  console.log(e);
  // Expected output: TypeError: calling Foo constructor without new is invalid
}

 

标签:function,target,whether,Javascript,constructor,new,Foo
From: https://www.cnblogs.com/Answer1215/p/18451616

相关文章

  • 白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.4 逻辑运算符
            逻辑运算符是用于布尔逻辑运算的符号,它们常用于控制流程和条件判断,帮助程序员编写更复杂和更动态的条件语句。在JavaScript中,主要的逻辑运算符包括逻辑与(‘&&‘)、逻辑或(‘||‘)、逻辑非(‘!‘)以及一些其他特定场景的运算符。逻辑运算符用于将多个布尔值或表达式......
  • 白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.5 条件运算符(三元
            条件运算符,也称为三元运算符,是JavaScript中唯一的三目运算符,它提供了一种简洁的方式来编写条件判断和赋值语句。通过使用条件运算符,你可以在一行代码中实现简单的条件判断,从而让代码更加紧凑和易读。条件运算符        条件运算符由三个部分组成:条件......
  • 前端模块化进化史:从全局 function 到 ES Modules
    目前,前端开发已经离不开由CommonJS、ESModules和Webpack构建的模块化开发环境。无论是JavaScript、CSS、图片还是其他资源,都可以作为一个模块来处理。那么,模块化究竟是如何发展到今天的呢?全局函数模式最初的前端模块化尝试是通过全局函数来实现的。例如,在一个util.js文......
  • 视野修炼-技术周刊第104期 | 下一代 JavaScript 工具链
    欢迎来到第104期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • JavaScript 小知识:轻松搞定 ArrayBuffer 到 Base64 的转换
    关键词:ArrayBuffer,Base64,栈溢出,TextDecoder,btoa,性能优化,JavaScript,兼容性摘要本文探讨了在JavaScript中将ArrayBuffer转换为Base64字符串时遇到的栈溢出问题,并提供了几种实用的解决方案。我们将通过生动的比喻来解释相关概念,比较不同方法的性能和兼......
  • JavaScript 小知识:轻松搞定 ArrayBuffer 到 Base64 的转换
    关键词:ArrayBuffer,Base64,栈溢出,TextDecoder,btoa,性能优化,JavaScript,兼容性摘要本文探讨了在JavaScript中将ArrayBuffer转换为Base64字符串时遇到的栈溢出问题,并提供了几种实用的解决方案。我们将通过生动的比喻来解释相关概念,比较不同方法的性能和兼......
  • JavaScript 小知识:轻松搞定 ArrayBuffer 到 Base64 的转换
    关键词:ArrayBuffer,Base64,栈溢出,TextDecoder,btoa,性能优化,JavaScript,兼容性摘要本文探讨了在JavaScript中将ArrayBuffer转换为Base64字符串时遇到的栈溢出问题,并提供了几种实用的解决方案。我们将通过生动的比喻来解释相关概念,比较不同方法的性能和兼......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......
  • Java vs JavaScript:类型系统的艺术 - 从 Object 到 any,从静态到动态
    关键词:Java,JavaScript,TypeScript,类型系统,静态类型,动态类型,软件开发,编程语言比较摘要:本文深入探讨Java、JavaScript和TypeScript三种语言的类型系统特点,从建筑学角度比喻它们的设计理念,分析各自在处理灵活数据结构时的优劣,并思考类型系统对软件开发的深......