Help us understand the problem. What is going on with this article?

Javascriptでnew 演算子でも普通の関数としても呼び出せるコンストラクタの作り方

More than 1 year has passed since last update.

JavascriptのちょっとしたHackyなコードです。
Person(name, age)でも呼べるし new Person(name, age)とも呼べるような関数の作成方法です。

コード

function Person(name, age) {
  if(!(this instanceof Person)) return new Person(name, age);
  this.name = name
  this.age = age
}

考え方

コンストラクタとして呼び出されたら普通に処理。
関数として呼び出されたらコンストラクタ呼び出しとして呼びだし直す。

kubocchi
GITHUB: https://github.com/programmerkgit
https://enterchain.online
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away