javascript 类与prototype

一、prototype模版定义类例子

function ShapeBase(){

}

ShapeBase.prototype={
    show:function()
    {
        alert("我是基本形状 show");
    }, 
    init:function() { 
        alert("ShapeBase init"); 
    } 
};

function Rect(){

}

Rect.prototype=new ShapeBase(); //继承 复制父模板
//如果直接赋值Rect.propotype=ShapeBase.propotype;修改Rect模板后会影响父模板
Rect.prototype.show=function (){ //覆盖父类方法

    alert("我是矩形。。。。");
};

二、解读模板原理

  //构造函数
  function Person(name, sex) {
      this.name = name;
      this.sex = sex;
  }
  // 定义Person的原型,原型中的属性可以被自定义对象引用
  Person.prototype = {
      getName: function() {
          return this.name;
      },
      getSex: function() {
          return this.sex;
      }
  }

 var zhang = new Person("ZhangSan", "man");
 console.log(zhang.getName()); // "ZhangSan"
 var chun = new Person("ChunHua", "woman");
 console.log(chun.getName()); // "ChunHua"

  1. 创建一个空白对象(new Object())。
  2. 拷贝Person.prototype中的属性(键值对)到这个空对象中(我们前面提到,内部实现时不是拷贝而是一个隐藏的链接)。
  3. 将这个对象通过this关键字传递到构造函数中并执行构造函数。
  4. 将这个对象赋值给变量zhang。

更多详细解读:http://www.nowamagic.net/javascript/js_ExampleForInheritance.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值