欢迎光临,了解微信小程序开发,就上易用通!

【新手入门】javascript新手学习第十课

发布:2018-01-24 15:23浏览: 来源:网络 作者:tianshu

继承是什么,如同人,在出生的时候就继承了上一辈的基因一样,js里也存在着继承,如
  1. function father(){
  2.     this.name="丁小柒";
  3.     this.sex="man"
  4. }
  5. var son=new father(); 
  6. console.log(son.name);    //丁小柒
  7. console.log(son.sex);     //man
从上面的例子里我们会发现,通过new实例出来的son也可以调用father的东西,这种关系就叫做继承,但是不可能儿子与父亲的名字一样,所以
  1. function father(){
  2.     this.name="丁小柒";
  3.     this.sex="man"
  4. }
  5. var son=new father();
  6. son.name="此处不告诉你";  //设置son的名字
  7. console.log(son.name)  //此处不告诉你
但是我们在开发时一般不会这么写,因为每个father的信息都不会一样,所以就有了动态的原型
  1. function father(name,sex){  //创建一个原型,包含两个属性name,sex
  2.     this.name=name;
  3.     this.sex=sex;
  4. }
  5. var son=new father("姓名","SEX"); //实例对象并写入属性
  6. console.log(son.name)             //姓名
prototype的用法
总有一些东西会是你的,也总有一些你永远拿不到,想让你继承就继承,不想让就不会继承
  1. function father(name,sex){
  2.     this.name=name;
  3.     this.sex=sex;                    //设置动态的属性
  4. }
  5. father.prototype.home="AH";         //设置可继承的属性
  6. var son=new father("姓名","SEX");
  7. console.log(son.home)              //AH
原型覆盖
  1. function father(){
  2. }
  3. father.prototype.home="AH";        //设置继承属性
  4. function son(){                    //空的son对象
  5. }
  6. son.prototype=new father();       //son的继承属性被father的覆盖
  7. var gg=new son();                 
  8. console.log(gg.home)
可能很多人会觉得这不是写入吗,怎么覆盖了,那么看下面
  1. function father(){
  2. }
  3. father.prototype.home="AH";
  4. function son(){ 
  5. }
  6. son.prototype.food="chicken";   //设置可继承属性
  7. son.prototype=new father();     //原型覆盖
  8. var gg=new son();
  9. console.log(gg.food)             //"undefined"
看下面
  1. function father(){
  2. }
  3. father.prototype.home="AH";
  4. function son(){ 
  5. }
  6. son.prototype=new father();          //原型覆盖
  7. son.prototype.food="chicken";        //再写入
  8. var gg=new son();
  9. console.log(gg.home)                  //AH
  10. console.log(gg.food)                   //chicken
是不是看的明白多了,那么何为所谓的原型链呢
如果说prototype是继承下去,那么proto呢,虽然一般对象没有这个方法
这里写图片描述
【新手入门】javascript新手学习第十课(图1) 

所以说 原型.prototype=实例._proto_
这么一个如链子般的东西也就是所谓的原型链了,使用原型,我们可以实现好多功能





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。