オブジェクトを作成する2つの方法

1657 ワード

オブジェクトの字面量を使用してオブジェクトを作成する
    var obj = {
      name: '   ',
      age: 18,
      sayHi: function () {
        console.log('hi');
      }
    };
    //     
    console.log(obj.name);
    console.log(obj['age']);  //  ,         。
    obj.sayHi();
    //         :   
    //                 
    //         。

new Objectを使用したオブジェクトの作成
    var object = new Object();
    object.name = '   ';
    object.age = 19;
    object.sex = ' ';
    object.sayHi = function(){
      console.log('   ');
    }
    //       ,         。     .    =  
    //          。
    console.log(object.age);

カスタムコンストラクタ
上記の2つの方法は、1回に1つのオブジェクトしか作成できないので不便ですが、複数のオブジェクトを1回作成する必要がある場合は、コンストラクション関数を使用する必要があります.
    // function      (  1....){             
    //this.    =    ;
    //this.    = function(){}
    // }
    //          new      ()

例:
function Star(name,age,sex){
      this.name  = name;
      this.age = age;
      this.sex = sex;
      this.sing = function(){
        console.log('  ');
      }
    }
    var ldh = new Star('   ',22,' ');  //       new   
    console.log(ldh.name);
    console.log(ldh.age);
    console.log(ldh.sex);

newキーワード実行プロセス
  • newコンストラクション関数は、新しい空のオブジェクト
  • を生成することができる.
  • thisは、作成したこの空のオブジェクト
  • を指します.
  • コンストラクタ内のコードを実行する(割り当て操作を完了する)
  • は、このオブジェクトを返します.

  • thisの指向問題
    一般的にthisは彼の呼び出し者を指している.
  • thisは関数でwindowを指します.Windowsがこの関数を呼び出したからです.
  • thisオブジェクト内の指向は、現在のオブジェクトです.
  • thisは、構造関数において現在のこの呼び出し者を指す.