遵從Js的原型鏈規則,利用js靈活的特性靈活地改造原型,可以實現各種創意地繼承方式,昨天研究了jQuery,對作者實現繼承的方式感到佩服,他對js原型和原型鏈的理解比較透徹,運用自如。這裡給出jQuery的繼承實現方式:看下面代碼:
function Cat(){ //空的構造方法,空的原型Cat{}內容 } Cat.prototype={ name:"Tom" //給空原型添加一個屬性 }; function a(){ //建造一個構造方法a(),實例化後原型有一個屬性值為88 this.pro="88"; } a.prototype=Cat.prototype; //將原型Cat{}的內容賦給原型a{} console.log(new a().name); //原型a{}的實例可以訪問到原型Cat{}中的屬性,為"Tom"
console.log(new a().pro); //原型a{}的實例也可以訪問到原型a{}中的屬性,為88
Js的繼承說到底就是靈活地改變原型中內容,再說到底就是利用底層的指針機制(不僅僅是原型鏈關系,比如對象復制指針的變化等等)來靈活地建立數據對應關系。我想有空時好好研究下js底層的指針的工作機制。