一、物件導向程式設計
#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 -- ; } }
三、包裝類別1.原始值是無法有屬性與方法(undefined、null、 number、boolean、string)2.有些原始值經過包裝類別之後,可以進行呼叫 var num=123;//不是物件 var num1=new Number(123);//是物件
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面向對象編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!