該問題困擾我好久了。原書《JavaScript設計模式》,ISBN:9787115191281。代碼在42頁下方。書中寫的extend函數(shù)如下:jsfunctionextend(subClass,superClass){varF=function(){};F.prototype=superClass.prototype;subClass.prototype=newF();subClass.prototype.constructor=subClass;subClass.superclass=superClass.prototype;if(superClass.prototype.constructor==Object.prototype.constructor){superClass.prototype.constructor=superClass;}}問題是最后3行這個if語句有什么用呢?書上說,即使父類是Object也可以正常繼承,要怎么理解呢?整個extend函數(shù)中未對父類的prototype做改動,那么不加這個判斷和修改會有什么錯誤么?
JavaScript extend方法的最后修改superClass.prototype.constructor
慕標琳琳
2019-04-19 16:11:39