javascript创建类对象

正确样例:

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.funShow()就是对的。

Person即是类,也是方法,说成带属性的方法更加合适。Person里面也是一步步执行下拉的,先运行this.init(name,age),在运行fun()。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值