|
摘要
本系列博文主要談一些在 Javascript 使用中經(jīng)常會混淆的高級應(yīng)用,包括: prototype, closure, scope, this關(guān)鍵字. 對于一個需要提高自己Javascript水平的程序員,這些都是必須要掌握的.
本節(jié)主要介紹prototype.
起由
最近在做一個項目,里面大量地使用 Javascript 作為頁面的動態(tài)生成腳本, 使用 json 與服務(wù)器進行通信. 在讀之前遺留的代碼時, 經(jīng)常會弄不清楚, 作用域, this關(guān)鍵字在當(dāng)前context下的指向等,于是便開始專門學(xué)習(xí)了 相關(guān)的知識,記錄下來與大家分享.
下面的內(nèi)容中會有一些代碼,建議大家也去嘗試修改和理解,這樣更容易掌握.
prototype
Javascript 是一種 prototype based programming 的語言, 而與我們通常的 class based programming 有很大 的區(qū)別,我列舉重要的幾點如下:
1. 函數(shù)是first class object, 也就是說函數(shù)與對象具有相同的語言地位
2. 沒有類,只有對象
3. 函數(shù)也是一種對象,所謂的函數(shù)對象
4. 對象是按 引用 來傳遞的。
那么這種 prototype based programming 的語言如何實現(xiàn)繼承呢(OO的一大基本要素), 這也便是 prototype 的由來.
看下面的代碼片斷:
function foo(a, b, c)
{
return a*b*c;
}
alert(foo.length);
alert(typeof foo.constructor);
alert(typeof foo.call);
alert(typeof foo.apply);
alert(typeof foo.prototype);
it知識庫:javascript必知必會之prototype,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。