溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript面向對象編程介紹

發(fā)布時間:2020-06-09 13:54:34 來源:億速云 閱讀:173 作者:鴿子 欄目:web開發(fā)

一、面向對象編程

1.面向過程與面向對象

1)面向過程:專注于如何解決一個問題的過程步驟,編程特點是由一個個函數(shù)去實現(xiàn)每一步的過程步驟,沒有類和對象的概念。

2)面向對象:專注于由哪一個對象來解決問題,編程特點是出現(xiàn)一個類,從類中拿到對象,由這個對象去解決具體問題。

對于調用者來說,面向過程需要調用者自己去實現(xiàn)各種函數(shù)。而面向對象,只需要調用者了解對象中具體方法的功能,不需要了解方法中的實現(xiàn)細節(jié)。

2.面向對象的三大特征

面向對象的三大特征繼承、封裝、多態(tài)。JS可以模擬實現(xiàn)繼承和封裝,但是無法模擬實現(xiàn)多態(tài),所以JS是一門基于對象的語言,          而不是傳統(tǒng)意義上的面向對象的語言。

3.類和對象的關系

1)類是抽象的,對象是具體的(類是對象的抽象化,對象是類的具體化)

2)類是一個抽象的概念,只能說類有屬性和方法,但是不能給屬性賦具體的。比如,人類有姓名,但是不能說人類的姓名叫什么。

二、Javascript對象的創(chuàng)建方法

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

2.構造函數(shù)(特點:大駝峰式命名規(guī)則)

1)系統(tǒng)自帶的構造函數(shù)

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

2)自定義函數(shù)封裝

// 函數(shù)里面加參數(shù)才能使函數(shù)自定義,可以隨意改變函數(shù)中對應參數(shù)的數(shù)據(jù),生產對象的時候必須得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.對象構造函數(shù)的內部原理3步

1)在函數(shù)體最上面隱式的加上一個對象:var this = {}

2)執(zhí)行函數(shù)體中的內容

3)隱式的返回this對象

三、包裝類

1.原始值是不可能有屬性和方法(undefined、null、number、boolean、string)

2.有些原始值經(jīng)過包裝類之后,可以進行調用

var num=123;//不是對象

var num1=new Number(123);//是對象

3.隱式包裝類的過程如下

  var num = 4;
  num.len = 3;//隱式發(fā)生轉換,新建一個數(shù)字對象,然后添加屬性并賦值,最后刪除這個對象,所以在執(zhí)行過程中沒有報錯
  console.log(num.len);//再新建一個數(shù)字對象,添加屬性,所以最后輸出為undefined
        
  var str="abcd";
  str.length=2;
  console.log(str.length);
  //輸出為4,在輸出時原始值str包裝類之后輸出的為new String('abcd').length,字符串自帶length屬性,所以輸出長度為4

以上就是js面向對象編程的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI