|
摘要
本系列博文主要談一些在 Javascript 使用中經常會混淆的高級應用,包括: prototype, closure, scope, this關鍵字. 對于一個需要提高自己Javascript水平的程序員,這些都是必須要掌握的.
本節主要介紹prototype.
起由
最近在做一個項目,里面大量地使用 Javascript 作為頁面的動態生成腳本, 使用 json 與服務器進行通信. 在讀之前遺留的代碼時, 經常會弄不清楚, 作用域, this關鍵字在當前context下的指向等,于是便開始專門學習了 相關的知識,記錄下來與大家分享.
下面的內容中會有一些代碼,建議大家也去嘗試修改和理解,這樣更容易掌握.
prototype
Javascript 是一種 prototype based programming 的語言, 而與我們通常的 class based programming 有很大 的區別,我列舉重要的幾點如下:
1. 函數是first class object, 也就是說函數與對象具有相同的語言地位
2. 沒有類,只有對象
3. 函數也是一種對象,所謂的函數對象
4. 對象是按 引用 來傳遞的。
那么這種 prototype based programming 的語言如何實現繼承呢(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,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。