var Mammal=function(name){				this.name=name;			};			Mammal.prototype.get_name=function(){				return this.name;			};			Mammal.prototype.says=function(){				return this.saying || "";			};						var myMammal=new Mammal("Herb the Mammal");			var name=myMammal.get_name();alert(name)Function.method("inherits",function(Parent){				this.protetype=new Parent();				return this;			});//這裡報錯——沒有該方法。這個Function.method()方法不應該是系統方法嗎?			var Cat=function(name){				this.name=name;				this.saying="meow";			}			.inherits(Mammal)			.method("purr",function(n){				var i,s="";				for(i=0;i<n;i+=1){					if(s){						s+="-";					}					s+="r";				}				return s;			})			.method("get_name",function(){				return this.says()+" "+this.name+" "+this.says();			});									var myCat=new Cat("Henrietta");			var says=myCat.says();alert("says"+says)			var purr=myCat.purr(5);alert(" purr"+purr)			var name=myCat.get_name();alert(" name"+name)
                    
                    
                1 回答
                        已采纳
                    
                                        
                         
                    
                    
                            cwtxz
                            
                                
                            
                        
                        
                                                
                    TA贡献5条经验 获得超0个赞
你没有真正理解js继承。js里面的函数是怎么来的?其实是通过Function构造器产生的,当我们创建函数对象时,该对象会产生一段类似于这样的代码:this.prototype={constructor:this}。method使我们人为定义的方法,该方法是一个辅助函数,代码如下:
Function.prototype.method=function(name,func){
this.prototype[name]=func;
return this;
        }
定义了该辅助函数之后,意味着所有的函数对象都可以调用method方法,而Funtion对象本身也是一个函数对象,因而也可以调用method方法。
添加回答
举报
0/150
	提交
		取消
	
