Maison  >  Article  >  interface Web  >  Comment vérifier si le constructeur d'un objet est un objet JavaScript ?

Comment vérifier si le constructeur d'un objet est un objet JavaScript ?

WBOY
WBOYavant
2023-09-15 08:25:05593parcourir

如何检查对象的构造函数是否是 JavaScript 对象?

Dans cet article, nous allons vérifier si le constructeur d'un objet est un objet JavaScript. La propriété constructeur de toute variable JavaScript renvoie une référence au constructeur Object qui a créé l'objet instance. La valeur de cette propriété est une référence à la fonction elle-même.

Tous les objets ont un attribut constructeur, et les objets créés sans constructeur auront un attribut constructeur pointant vers ce type de constructeur d'objet de base.

Pour vérifier si le constructeur de la valeur fournie est un objet créé par le constructeur d'objet, nous devons comparer la valeur de la propriété du constructeur de l'objet avec la référence du constructeur d'objet correspondante. La propriété constructeur renvoie une référence au constructeur qui a créé l'instance.

Syntaxe

Ce qui suit est la syntaxe de la fonction pour vérifier si le constructeur d'un objet est un objet

function check(obj) {
   return obj.constructor === Object ? true : false
}

Exemple

Dans le programme suivant, nous vérifions si le constructeur de six objets est un objet JavaScript.

<html>
<body>
   <h3 >Check if Constructor is Object</h3>
   <p> Click on the check button all test cases </p>
   <p>Test Case 1: {} </p>
   <p>Constructor is Object:
      <span id="testcase1"> </span> </p>
   <p>Test Case 2: new Number(3)</p>
   <p>Constructor is Object:
      <span id="testcase2"> </span> </p>
   <p>Test Case 3: new Object </p>
   <p>Constructor is Object:
      <span id="testcase3"> </span> </p>
   <p>Test Case 4: new Object() </p>
   <p>Constructor is Object:
      <span id="testcase4"> </span> </p>
   <p> Test Case 5: [] </p>
   <p>Constructor is Object:
      <span id="testcase5"> </span> </p>
   <p>Test Case 6: "Object Constructor" </p>
   <p>Constructor is Object:
      <span id="testcase6"> </span> </p>
   <button onclick="runTestCases()"> Check </button>
   <script>

      // This function will check if created by Object constructor
      function check(obj) {
         return obj.constructor === Object ? true : false
      }
      function runTestCases() {
         document.getElementById("testcase1").textContent =
            check({});
         document.getElementById("testcase2").textContent =
            check(new Number(3));

         document.getElementById("testcase3").textContent =
            check(new Object);

         document.getElementById("testcase4").textContent =
            check(new Object());

         document.getElementById("testcase5").textContent =
            check([]);

         document.getElementById("testcase6").textContent =
            check("Object Conctructor");
      }
   </script>
</body>
</html>

Lorsque vous cliquez sur le bouton "Vérifier", tous les cas de test s'exécuteront et afficheront la sortie comme vraie ou fausse. Comme nous pouvons le voir dans le code ci-dessus, si l'objet est créé par le constructeur d'objet, le résultat sera reflété comme vrai, sinon il sera affiché comme faux. Dans le code ci-dessus, les cas de test 1, 3 et 4 donnent la valeur true car ils sont tous créés à l'aide du constructeur d'objet. Ici, la propriété du constructeur d'objet renvoie une valeur égale à l'objet dans les cas 1, 3 et 4.

Exemple (Trouver le constructeur d'un objet)

Dans le programme ci-dessous, on retrouve les constructeurs de quatre objets différents créés selon des méthodes différentes. Nous appliquons la propriété Object.constructor pour trouver le constructeur de l'objet.

<html>
<body>
   <h3> Find the Constructor of Objects</h3>
   <p id="demo"></p>
   <script>
      function Student(first, last, course) {
         this.firstName = first;
         this.lastName = last;
         this.course = course;
      }
      const stud1 = new Student("John", "Doe", "M.Tech");
      const stud2 = new Object();
      const stud3 = new Object;
      var stud4 = {
         firstName: "John",
         lastName: "Doe",
         course: "M.Tech"
      }
      document.getElementById("demo").innerHTML +=`Constructor of stud1: ${stud1.constructor} <br>`;
      document.getElementById("demo").innerHTML +=`<br>Constructor of stud2: ${stud2.constructor} <br>`;
      document.getElementById("demo").innerHTML +=`<br>Constructor of stud3: ${stud3.constructor} <br>`;
      document.getElementById("demo").innerHTML +=`<br>Constructor of stud4: ${stud4.constructor} <br>`;
   </script>
</body>
</html>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer