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

オブジェクトリテラルとコンストラクター関数を使用して作成されたオブジェクトの主な違いは何ですか?


オブジェクトリテラルを使用して作成されたオブジェクトは、シングルトンです。 、これは、オブジェクトに変更が加えられると、スクリプト全体のオブジェクトに影響を与えることを意味します。一方、オブジェクトがコンストラクター関数を使用して作成され、それに変更が加えられた場合、その変更はスクリプト全体でオブジェクトに影響を与えません。

それらについて個別に話し合いましょう。

1)オブジェクトリテラルを使用して作成されたオブジェクト

これらはシングルトンなので 、オブジェクトへの変更はスクリプト全体で持続します。 1つのインスタンスでの変更は、オブジェクトのすべてのインスタンスに影響します。

次の例では、両方のオブジェクトが「学生」であることがわかります。 "と"newStudent "同じ名前(Ravi)を表示します 最初は。しかし、かつてはオブジェクトの名前は「 newstudent "が変更された(他のオブジェクト名を一定に保つ)、両方のオブジェクトが変更された名前(kumar)を表示しました 。

<html>
<body>
<script>
   var student = {
      name: "Ravi"
   }
   var newStudent = student;
   document.write("Before change");
   document.write("</br>");
   document.write("student name = " + student.name);
   document.write("</br>");
   document.write("new student name = " + newStudent.name);
   document.write("</br>");
   newStudent.name = "kumar";
   document.write("After change");
   document.write("</br>");
   document.write("student name = " + student.name);
   document.write("</br>");
   document.write("new student name = " + newStudent.name);
</script>
</body>
</html>

出力

Before change
student name = Ravi
new student name = Ravi
After change
student name = kumar
new student name = kumar


2)コンストラクター関数を使用して作成されたオブジェクト。

fで定義されたオブジェクト unction co <​​/ strong> インストラクターl そのオブジェクトの複数のインスタンスがあります。つまり、1つのインスタンスに加えられた変更は、他のインスタンスには影響しません。

次の例では、オブジェクトの名前は「 newStudent "が変更されました。他のオブジェクトの名前"学生 "は同じままでした。両方のオブジェクトは、出力に示されているように異なる名前を表示しました。

<html>
<body>
<script>
   var stu = function() {
      this.name= "Ravi"
   }
   var newStudent = new stu();
   var student = new stu();
   document.write("Before change");
   document.write("<br>");
   document.write("student name = " + student.name);
   document.write("<br>");
   document.write("new student name = " + newStudent.name);
   document.write("<br>");
   newStudent.name = "kumar";
   document.write("After change");
   document.write("<br>");
   document.write("student name = " + student.name);
   document.write("<br>");
   document.write("new student name = " + newStudent.name);
</script>
</body>
</html>

出力

Before change
student name = Ravi
new student name = Ravi
After change
student name = Ravi
new student name = kumar

  1. JavaScriptの関数とメソッドの違いは何ですか?

    JavaScriptでも関数とメソッドは同じですが、メソッドはオブジェクトのプロパティである関数です。 以下はJavaScriptの関数の例です- function functionname(param1, param2){    // code } 例 メソッドはオブジェクトに関連付けられた関数です。以下はJavaScriptのメソッドの例です- <html>    <head>       <script>          var e

  2. C#のリテラルと定数の違いは何ですか?

    定数は、プログラムの実行中に変更できない固定値を参照します。これらの固定値は、リテラルとも呼ばれます。定数は、整数定数、浮動定数、文字定数、文字列リテラルなど、任意の基本データ型にすることができます。列挙定数もあります。 整数リテラルは、10進数または16進数の定数にすることができます。接頭辞は基数または基数を指定します。16進数の場合は0xまたは0Xであり、10進数の場合は接頭辞IDはありません。 150 300u 浮動小数点リテラルには、整数部分、小数点、小数部分、および指数部分があります。 3.14159 235468E-7F 文字列リテラルまたは定数は、二重引用符または@で囲まれ