
MVC 和類別(Classes)
|
19
var slice = [].slice,
args = slice.call(arguments, 1),
self = this,
nop = function () {},
bound = function () {
return self.apply( this instanceof nop ? this : ( obj || {} ),
args.concat( slice.call(arguments) ) );
};
nop.prototype = self.prototype;
bound.prototype = new nop();
return bound;
};
}
只有在找不到
Function.prototype.bind
屬性時,才去覆寫它:較新版的瀏覽器還是
可以使用它們內建的實作方式。相容性修正程式對於陣列而言特別有用,因為最新版
的 JavaScript 為陣列添加了不少新功能。我目前用的是 es5-shim(
https://github.com/
kriskowal/es5-shim
)專案,因為 ES5 提供的新功能差不多都有被它所涵蓋到。
新增私有函式(Private Function)
目前為止,我們加進類別的屬性,都可以公諸於世、讓人隨時去修改它們的內容。但接
下來要說明,如何在類別裡新增一些私有屬性。
很多程式設計者喜歡在私有屬性名稱前面加上底線(_)。這麼做並不會真的讓這些屬性
變成私有屬性,其他人還是可能隨時修改這些屬性,但至少這麼做能讓人一眼看出哪些 ...