1. 程式人生 > >Web前端-JS-day05-面向物件

Web前端-JS-day05-面向物件

1.面向過程與面向物件

  • 1.面向過程:凡事都要親力親為,每件事的具體過程都要知道,注重的是過程
  • 2.面向物件:根據需求找物件,所有的事情都用物件來做,注重的是結果

    2.JS的特性

    • 1.面向物件的特性:封裝、繼承和多型
    • 2.JS不是面向物件的語言,但是可以模擬面向物件的思想
    • 3.JS是基於物件的語言

      3.什麼是物件

    • 1.看得見、摸得到、具體特指的某個東西
    • 2.物件:有特徵和行為,具體特指的某一個事物
    • 3.物件:有屬性和方法,具體特指的某個事物

      4.建立物件

    • 1.建立的三種方式:
      (1)呼叫系統的建構函式,建立物件
      (2)自定義建構函式,建立物件
      (3)字面量的方式,建立物件
    • 2.建立物件方式一
      (1)例項化物件
      var obj = new Object();
      (2)新增屬性 物件.名字=值
      obj.name = "小蘇";
      obj.age = 28;
      (3)新增方法 物件.名字=函式
      obj.eat = function(){
      console.log("我喜歡吃油炸食品!");
      }
      (4)獲取屬性和方法
      console.log(obj.name);
      obj.eat();
    • 3.建立方式二-工廠模式建立物件
      (1)如何獲取該變數(物件)是不是屬於什麼型別的?
      語法:變數 instanceof 型別的名字→布林型別true false
      (2)在當前的方法中,可以使用this關鍵字代表當前的物件
      (3)如何一次性建立多個物件?→把建立物件的程式碼封裝在一個函式中
      function createObject(){
      var obj = new Object();
      obj.name="小芳";
      obj.sayHi=function(){ console.log("我叫"+this.name);}
      //返回物件
      return obj;
      }
      function createObject1(name){
      var obj = new Object();
      obj.name=name;
      obj.sayHi=function(){ console.log("我叫"+this.name);}
      //返回物件
      return obj;
      }
      (4)總結:上面就是工廠模式建立物件
      1. 自定義函式建立物件--建立物件方式2
        (1)函式與建構函式的區別:名字是不是大寫(首字母是大寫)
        function Person(){ }//參照Object的定義方式
        function Person(){
        this.name="小明";
        this.age=10;
        this.sayHi=function(){
        console.log("我叫:"+this.name+"年齡是:"+this.age);
        }
        }
        function Person(name,age){
        this.name=name;
        this.age=age;
        this.sayHi=function(){
        console.log("我叫:"+this.name+"年齡是:"+this.age);
        }
        }
        var person1 = new Person("小明",20);
        console.log(person1 instanceof Person);j→true //說明person1是Person的物件
        (2)自定義建構函式建立物件時
        --做了4件事--系統做的
        ** 1.在記憶體中開闢(申請一個空閒的記憶體空間)空間,儲存建立的新物件
        ** 2.把this設定為當前物件
        3.設定物件的屬性和方法的值
        4.把this這個物件返回
        (3)自定義建構函式--小貓
        function Cat(color,weight,age){
        this.color =color;
        this.weight=weight;
        this.age=age;
        this.eat=function(){
        console.log("吃魚,吃老鼠");
        }
        }
        //建立物件--例項化一個物件,並初始化
      • 5.字面量的方式建立物件--建立方式三
        var obj = {};//空物件
        obj.name="小明";
        obj.sayHi=function(){
        console.log("我是"+obj.name);
        }
        //優化後的寫法:
        var obj={
        name:"小明",
        sayHi:function(){
        console.log("我是:"+this.name);
        }
        }
        (1)缺陷:一次性的物件

        5. js是一門什麼樣的語言?

  • 是一門解析性的語言
  • 是一門指令碼語言
  • 是一門弱型別的語言,宣告變數都用var
  • 是一門基於物件的語言
  • 是一門動態型別的語言