JQuery继承

<script type = "text/javascript">
  // 定义一个类,构造函数;
  var testClass = function() {
    this.name = "Woody";
  };

  // 通过prototype对象定义类的其他成员;
  testClass.prototype = {
    altName: function() {
      testClass.altName( this.name );  // 调用testClass.altName()方法;
    }
  };

  // 实现继承的方法;
  testClass.extend = function(o, p) {
    if ( !p ) { p = o; o = this; }
    for ( var i in p ) o[ i ] = p[  i ];
    return o;
  };

  // 对testClass进行扩展;
  testClass.extend({
    altName: function( str ) {
      alert( "My name is " + str);
    },
    add: function( i ) {
      alert( ++i );
    }
  });

  var tc = new testClass(); // 实例化一个tesClass对象;

  // 反射机制,看tc实例继承了哪些属性方法;
  // 从运行结果来看,它只继承了name,altName();
  for ( var i in tc ) alert( i + " = " + tc[ i ]);

  // 调用tc实例的altName()方法,而在定义中又调用testClass.altName()方法;
  tc.altName();

  // 该方法只能通过类来调用,不能通过实例来调用,比如tc.add(0)就会出错;
  testClass.add( 0 );
</script>

  •  如果对“类”进行extend,那么就是只有类本身才可以使用,相当于静态方法。
  •  如果对本“类”的prototype进行extend,那么“类”的实例也可以使用,相当于实例方法。


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值