JS高級---實例對象和構造函數之間的關係

實例對象和構造函數之間的關係:

  1. 實例對象是經過構造函數來建立的---建立的過程叫實例化
  2. 如何判斷對象是否是這個數據類型?
   1) 經過構造器的方式 實例對象.構造器==構造函數名字
   2) 對象 instanceof 構造函數名字
   儘量的使用第二種方式來識別,爲何?原型講完再說

 

 

    //面向對象的思想是----抽象的過程---->實例化的過程

    //小蘇這我的,姓名,年齡,性別, 吃飯,打招呼,睡覺

    //自定義構造函數----->實例化對象
    function Person(name,age,sex) {
      this.name=name;
      this.age=age;
      this.sex=sex;
      this.eat=function () {
        console.log("吃大蒜拌臭豆腐加榴蓮醬");
      };
    }
    //構造函數---->建立對象
    var per=new Person("小蘇",38,"女");
    //per.eat();//吃
    //實例對象是經過構造函數來建立
    //實例對象會指向本身的構造函數(暫時理解,是錯誤的)
    //把這個對象的結構顯示出來
    console.dir(per);
    console.dir(Person);


    //實例對象的構造器(構造函數)
    //實例對象的構造器是指向Person的,結果是true,因此,這個實例對象per就是經過Person來建立的
    console.log(per.constructor==Person);//

    console.log(per.__proto__.constructor==Person);
    console.log(per.__proto__.constructor==Person.prototype.constructor);



    //構造函數
    function Animal(name) {
      this.name=name;
    }
    //實例對象
    var dog=new Animal("大黃");
    console.dir(dog);//實例對象
    console.dir(Animal);//構造函數的名字

    console.log(dog.__proto__.constructor==Person);
    console.log(dog.__proto__.constructor==Animal);


    //判斷這個對象是否是這種數據類型
    console.log(dog.constructor==Animal);
    console.log(dog instanceof Person);
相關文章
相關標籤/搜索