
MVC 和類別(Classes)
|
17
// 再新增一組參數
args.unshift("(App)");
// 將工作委派給 console
console.log.apply(console, args);
}
};
前面這段範例程式碼,是先將參數轉換成陣列格式,然後新增一組參數。最後再將函
式的工作委派給
console.log()
。這裡先簡單說明一下
arguments
變數的意義,這個變
數是由 JavaScript 解譯器設定的,它是一個陣列,用來儲存目前所屬函式作用域所接收
到的所有引數。但它和真正的 JavaScript 陣列還是有差別(例如,它的內容是不能變動
的),因此我們必須先用
jquery.makeArray()
將它轉換成我們所熟悉的陣列格式。
在我們的類別函式庫裡管理作用域(scope)
稍早介紹的 proxy 函式,是一種非常實用的做法,因此似乎有必要將它加進我們自己開
發的類別函式庫裡面。我們會分別幫類別和實體新增一組 proxy 函式。如此一來,在將
控制權轉交給事件處理器(或其他類似函式)時,還是能讓它的執行環境和類別保持
一致:
var Class = function(parent){
var klass = function(){
this.init.apply(this, arguments);
};
klass.prototype.init = function(){};
klass.fn = klass.prototype;
// 新增 proxy ...