JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのコンストラクターにプロパティやメソッドを追加する方法

JavaScriptでは、コンストラクター関数に対してprototype(プロトタイプ)を利用することで、後からプロパティやメソッドを追加することができます。この方法で追加したプロパティやメソッドは、そのコンストラクターから生成されたすべてのインスタンスで共有されるため、メモリの面でも効率的です。

サンプルコード

以下は、JavaScriptのコンストラクターにプロパティとメソッドを追加するコード例です。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 20px;
      font-weight: 500;
    }
</style>
</head>
<body>
<h1>Add property,method to javaScript constructor</h1>
<div style="color: green;" class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to add property, method to constructor</h3>
<script>
   let resEle = document.querySelector(".result");
   function Human(firstName,lastName){
      this.firstName = firstName;
      this.lastName = lastName;
   }  
   let obj = new Human('Rohan','Sharma');
   document.querySelector(".Btn").addEventListener("click", () => {
      Human.prototype.welcome = function(){
         return 'Welcome '+this.firstName + ' ' + this.lastName;
      }
      Human.prototype.age = 22;
      resEle.innerHTML = 'Adding property to constructor : age <br>' + obj.age + '<br>';
      resEle.innerHTML += 'Adding function to constructor : welcome() <br>' +
      obj.welcome() + '<br>';
   });
</script>
</body>
</html>

コードの解説

このコードでは、Humanというコンストラクター関数を定義し、firstNamelastNameという2つのプロパティを持たせています。その後、ボタンがクリックされると、Human.prototypeに対して以下の要素を動的に追加します。

  • welcome()メソッド:氏名を連結して「Welcome 氏名」という挨拶文を返すメソッド
  • ageプロパティ:値として22を持つプロパティ

このようにprototype経由で追加することで、すでに生成済みのインスタンス(ここではobj)からも、新しく追加されたプロパティやメソッドを即座に利用できるようになります。

実行結果

上記のコードを実行すると、次のような画面が表示されます。

JavaScriptのコンストラクターにプロパティやメソッドを追加する方法

「CLICK HERE」ボタンをクリックすると、コンストラクターに追加されたプロパティとメソッドの結果が表示されます。

JavaScriptのコンストラクターにプロパティやメソッドを追加する方法

  1. JavaScriptのDateコンストラクタープロパティとは?使い方を実例で解説

    JavaScriptのDateコンストラクタープロパティは、その日付オブジェクトを生成した元となるコンストラクター関数(Date())を返すプロパティです。すべてのJavaScriptオブジェクトが持つconstructorプロパティの一つで、Dateオブジェクトに対して使用すると、function Date() { [native code] }という形式の関数定義が出力されます。 このプロパティを活用することで、あるオブジェクトが本当にDateインスタンスであるかを確認したり、動的に新しいDateオブジェクトを生成したりすることができます。以下に、実際の動作を確認できるサンプルコードを紹介

  2. JavaScriptでループ処理に遅延を追加する方法をわかりやすく解説

    JavaScriptでループの各反復の間に遅延(待ち時間)を設けたい場合は、setTimeout() メソッドを使用します。この記事では、基本的な実装例から、より読みやすいモダンな書き方まで、コード例とともに解説します。 setTimeout()でループに遅延を追加する仕組み setTimeout() は、指定したミリ秒後にコールバック関数を一度だけ実行するメソッドです。ループ内で単に setTimeout(fn, 2000) と書くだけでは、すべてのタイマーがほぼ同時に登録されてしまい、意図した通りの遅延になりません。 そこでポイントとなるのが、遅延時間にループカウンタを掛け算するという手法