javascript作成類の対象

2081 ワード

正しい例:
var Person=function(name,age){
      this.Name='';
      this.Age='';
      this.Say=function(msg){
             alert(msg);
      }
      this.init=function(name,age){
             this.Name=name;
             this.Age=age;
      }
      this.init(name,age);

      var fun=function(){
            alert('fun');
      }

      this.funShow=function(){
             fun();
      }
      <pre name="code" class="html">      var mutilFun=function(){
             <pre name="code" class="html">             Say();
<span style="font-family: Arial, Helvetica, sans-serif;">                          this.Say();</span>
 
 
      this.mutilFunShow=function(){          <pre name="code" class="html">             mutilFun();
 fun();}调用: var Jon=new Person('Jon',26); Jon.Say('go away'); alert(Jon.Name+Jon.Age);上面都对 var Shaw=new Person('Shaw',26); 
 
 
 

   Shaw.fun();
<pre name="code" class="html">   Shaw.funShow();//     。  Shaw  。
   Shaw.mutilFunShow();//         mutilFun    ,  <span style="font-family: Arial, Helvetica, sans-serif;">mutilFun      ,  mutilFun  this.Say()  Person     this.Say()。   this                                                       </span><span style="font-family: Arial, Helvetica, sans-serif;">mutilFun,  Person。</span>
 
 
Shaw       
どうしてShaw.funが間違っていますか?そしてエラーは
 Shaw.fun()is not a function.funはShawの属性ではないので、属性はvarを使わないです.thisを使っていますか?thisがないです.
でもShaw.fun Showは正しいです.
Personはクラスであり、方法でもあります.属性を持つ方法がより適切です.Personでも一歩ずつドロップを実行しています.まず、this.init(name,age)を実行して、fun()を実行しています.