首頁  >  文章  >  web前端  >  js面向對象編程

js面向對象編程

hzc
hzc轉載
2020-06-04 12:30:372140瀏覽

一、物件導向程式設計

#1.程式導向與物件導向

    1)以過程為導向:專注於如何解決一個問題的過程步驟,程式設計特點是由一個個函數去實現每一步的過程步驟,沒有類別和物件的概念。

    2)物件導向:專注於由哪一個物件來解決問題,程式設計特點是出現一個類別,從類別中拿到對象,由這個物件去解決特定問題。

    對於呼叫者來說,以過程為導向需要呼叫者自己去實作各種函數。而面向對象,只需要呼叫者了解對像中具體方法的功能,不需要了解方法中的實作細節。

2.物件導向的三大特徵


      物件導向的三大特徵繼承、封裝、多型。 JS可以模擬實現繼承和封裝,但是無法模擬實現多態,所以JS是一門基於物件的語言,          而非傳統意義上的物件導向的語言。
3.類別與物件的關係


#    1)類別是抽象的,物件是特定的(類是物件的抽象化,物件是類別的具體化)

    2)類別是抽象的概念,只能說類別有屬性和方法,但是不能給屬性賦具體的。例如,人類有姓名,但是不能說人類的姓名叫什麼。 二、Javascript物件的創

建置方法

1.var obj = {}//簡單對象plainObject 物件字面量/物件直接量

2.建構子(特點:大駝峰式命名規則)

1)系統自帶的建構子

    var obj = new Object();//相當於var object = {}

2)自訂函數封裝

    // 函數在裡面加參數才能讓函數自訂,可隨意改變函數中對應參數的數據,生產物件的時候必須得new物件

function Car(color){
        this.color=color;
        this.name = "BMW";
        this.height = "1400";
        this.lang = "4900";
        this.weight = 1000;
        this.health = 100;
        this.run = function(){
            this.health -- ;
        }
    }

    var car = new Car("red");

3.物件建構函數的內部原理3步驟

    1)在函數體最上方隱式的加上一個物件:var this = {}

    2)執行函數體內的內容

    3)隱含的返回this物件

    

三、包裝類別

1.原始值是無法有屬性與方法(undefined、null、 number、boolean、string)

2.有些原始值經過包裝類別之後,可以進行呼叫   

        var num=123;//不是物件

        var num1=new Number(123);//是物件

3.隱含包裝類別的過程如下

  var num = 4;
  num.len = 3;//隐式发生转换,新建一个数字对象,然后添加属性并赋值,最后删除这个对象,所以在执行过程中没有报错
  console.log(num.len);//再新建一个数字对象,添加属性,所以最后输出为undefined
        
  var str="abcd";
  str.length=2;
  console.log(str.length);
  //输出为4,在输出时原始值str包装类之后输出的为new String('abcd').length,字符串自带length属性,所以输出长度为4

    推薦教學:###《JS教學》######

以上是js面向對象編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除