一,js中物件繼承
js中有三種繼承方式
1.js原型(prototype)實現繼承
複製**
**如下:
2.建構函式實現繼承
複製**
**如下:
複製**
**如下:
js手冊中對call的解釋:
複製**
**如下:
call 方法
呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。
call([thisobj[,arg1[, arg2[, [,.argn]]]]])
引數
thisobj
可選項。將被用作當前物件的物件。
arg1, arg2, , argn
可選項。將被傳遞方法引數序列。
說明
call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。
如果沒有提供 thisobj 引數,那麼 global 物件被用作 thisobj。
複製**
**如下:
function person(name,age);
} function print()
} alert(msg.join(" "));
};
} function student(name,age,grade,school)
var p1=new person("卜開化",80);
p1.sayhello();
var s1=new student("白雲飛",40,9,"嶽麓書院");
s1.show();
s1.sayhello();
alert(s1.funcname);
我們先從math.max()函式說起,math.max後面可以接任意個引數,最後返回所有引數中的最大值。
比如複製**
**如下:
alert(math.max(5,8)); //8
alert(math.max(5,7,9,3,1,6)); //9
//但是在很多情況下,我們需要找出陣列中最大的元素。
var arr=[5,7,9,1];
//alert(math.max(arr)); // 這樣卻是不行的。nan
//要這樣寫
function getmax(arr)
return ret;
} alert(getmax(arr)); //9
function getmax2(arr)
alert(getmax2(arr)); //9
//兩段**達到了同樣的目的,但是getmax2卻優雅,高效,簡潔得多。
//再比如陣列的push方法。
var arr1=[1,3,4];
var arr2=[3,4,5];
//如果我們要把 arr2展開,然後乙個乙個追加到arr1中去,最後讓arr1=[1,3,4,3,4,5]
顯然是不行的。 因為這樣做會得到[1,3,4,[3,4,5]]
//我們只能用乙個迴圈去乙個乙個的push(當然也可以用arr1.concat(arr2),但是concat方法並不改變arr1本身)
var arrlen=arr2.length;
for(var i=0;i 取自 1.js實現繼承的幾種方式 2.js 物件導向之繼承 多種組合繼承 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 ani... 前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心... 文章 1 原型鏈繼承 核心 將父類的例項作為子類的原型 2 構造繼承 核心 使用父類的建構函式來增強子類例項,等於是複製父類的例項屬性給子類 沒用到原型 3 例項繼承 核心 為父類例項新增新特性,作為子類例項返回 4 拷貝繼承 5 組合繼承 核心 通過呼叫父類構造,繼承父類的屬性並保留傳參的優點,然...JS實現繼承的幾種方式
JS實現繼承的幾種方式
JS實現繼承的幾種方式