標籤:
Java script 中的物件導向
- 對象
對象是Javascript的基礎資料型別 (Elementary Data Type),對象是一種複合值,將很多的索引值對彙總在一起使用。對象可看做是屬性的無序集合,每個屬性都是一個名/值對。屬性名稱其實是一個字串。我們可以把對象看做是字串到值的映射。
- 建立對象
例子代碼如下:
<script type="text/javascript" language="JavaScript">
????//建立一個對象o 有兩個屬性 x y
????????var o={
????????????x:10,//注意:名/值之間用冒號:隔開多個名值對之間用逗號間隔
????????????y:20//整個映射表要用花括弧括起來
????????};
????????var o1={
????????}//建立一個Null 物件
????????
????????//對象中的值可以引用其他對象的值
????????var o2={
????????????x:o.x-1,
????????????y:o.y
????????????author:{
????????????????fristname:"lisi",
????????????????lastname:"zhangsan"
????????????}
????????}
????????
????</script>
- 通過new 建立對象
var o3=new Object();//建立一個Null 物件和{}一樣
????????????var a=new Array();//建立一個空數組和[]一樣
????????????var d=new Date();//建立一個表示當前日期的對象
????????????var r=new RegExp("js");//建立一個進行模式模式比對的RegExp對象
?
?
?
- 原型
每一個對象都是從原型中繼承而來的
通過Javascript代碼 object.prototype獲得對原型對象的引用
通過關鍵字new和建構函式調用建立的對象的原型都是建構函式的prototype屬性的值
?
因此使用{}建立的對象一樣 通過new object()建立的對象也繼承來自於Array.prototype,通過new Date()建立的對象的原型就是Date.prototype.
?
Object.prototype沒有原型
4.通過Object.create()建立對象
Object.create()是一個靜態函數,不是提供給某個對象調用的方法。
只需傳入所需的的原型對象即可。
var a1=Object.create({x:10,y:12});
?
二.對象屬性的設定
可以通過點.或者方括弧[]運算子來取屬性的值
注意:方括弧內必須是一個計算結果為字串的運算式
var 0_x=o2.x;
????????var o_author=02["author"];
同樣可以通過這種方式對對象設定屬性值
????????o2.x=10;
????????o2["y"]=20;
三、函數對象
可以使用function關鍵字定義一個函數,並為每個函數指定一個函數名,通過函數名來進行調用。在javascript解釋執行的時候,函數都是被維護為一個對象,就是函數對象。
function myfunction(a,b){
????return a+b;
}
等價於
var myfunction = new Function("a","b","return a+b");
?
另外
var i = function(a,b){
????return a+b;
}(1,2)
這樣的寫法就是建立完函數後馬上執行。
?
再有,function funcName(){}等價於
????var funcName = function(){}
?
?
?
?
?
?
?
?
?
?
Java script 中的物件導向1