建立對象的兩種方式

使用對象字面量的方式建立對象

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

自定義構造函數

上面兩種方法,都只能一次建立一個對象,因此不太方便,若是咱們須要一次建立多個對象的時候,就須要使用構造函數了。ide

    // 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指向他的調用者。this

  1. this在函數中的指的是 window 。由於window調用了這個函數。
  2. this在對象中的指向是當前這個對象。
  3. this在構造函數中的指向當前的這個調用者。
相關文章
相關標籤/搜索