天天看點

面向對象的JS

JavaScript不能叫面向對象語言,隻能說基于對象的語言。JS隻有封裝,沒有繼承和多态,不具備面向對象的三大特性。JS一切都是對象, 數組、 類、 10、”” 都是對象。

JavaScript中的函數沒有重載一說,如果定義了多個 同名的函數, 隻有最後一個起作用,相當于最後一個把之前的都覆寫掉了。函數中的參數隻是一個占位符。其實不寫形參也可以, 如果不寫形參 ,想通路的話 可以使用arguments這個數組arguments[0] 通路第一個參數。

JS中建立對象的三種方式

一,自定義對象構造

JS中沒有 class關鍵字來定義類 如果想定義一個類 需要使用函數來模拟。

function Person(name){
    this.name=name;
    this.run=function () {
        alert("我在跑");
    }
}

var p=new Person("啦啦");
alert(p.name);
p.run()
           

二,使用内置對象

建立一個Object對象

var stu=new Object();
stu.name="啦啦";
stu.study=function(){
    alert('我在學習');
}

alert(stu.name);
stu.study();
           

三,使用JSON符号

JSON作為JavaScript的一個自己,同時ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的語言都提供支援,使得JSON成為Ajax開發的首選方案。

JSON有兩種建構方式,一種是采用簡單的“鍵/值對”的集合,在不同的語言中被了解為對象、記錄、結構、字典、哈希表、有鍵清單,或者關聯數組等,另一種采用有序的值清單,大部分語言把它了解為數組。

常用的建立方式是第一種,即采用“鍵/值對”集合的形式。在這種形式下,一個對象以“{”(左括号)開始,“}”(右括号)結束。每個“名稱”後跟一個“:”(冒号),“ ‘鍵/值’ 對”之間使用“,”(逗号)分隔。

var stu={"name":"啦啦","study":function(){
        alert('我在學習');
    }
};
alert(stu.name);
stu.study();
           

Person對象轉化為JSON字元串,也就是{ name:”啦啦” , “run”:function () {alert(“我在跑”);}}。

JavaScript中使用prototype模拟繼承

function Person(){
    this.run=function () {
        alert("我在跑");
    }
}

function Student(){
    this.study=function () {
        alert("我在學習");
    }
}
var person=new Person();
Student.prototype=person;
var stu=new Student();
stu.study();
stu.run();
           

繼續閱讀