1. 程式人生 > 實用技巧 >建立物件的兩種方式

建立物件的兩種方式

使用物件字面量的方式建立物件

    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);

自定義建構函式

上面兩種方法,都只能一次建立一個物件,所以不太方便,如果我們需要一次建立多個物件的時候,就需要使用構造函數了。

    // 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 關鍵字執行的過程

  1. new 建構函式可以產生一個新的空物件
  2. this 就指向我們建立的這個空物件
  3. 執行建構函式裡面的程式碼(完成賦值操作)
  4. 返回這個物件。

this的指向問題

一般情況this指向他的呼叫者。

  1. this在函式中的指的是 window 。因為window呼叫了這個函式。
  2. this在物件中的指向是當前這個物件。
  3. this在建構函式中的指向當前的這個呼叫者。