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();