码迷,mamicode.com
首页 > 编程语言 > 详细

javascript创建类对象

时间:2016-05-07 08:44:43      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

正确样例:

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()。



javascript创建类对象

标签:

原文地址:http://blog.csdn.net/mastershaw/article/details/51329922

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!