js学习笔记2

JS继承

1.对象冒充

function ClassA(sColor){
    this.color = sColor;
    this.sayColor = function(){
    }
 }

function ClassB(sColor){

   相当于重新定义了在ClassA中的方法
    this.newMethod = ClassA;
    this.newMethod(sColor);
    delete this.newMethod;
}

 

2.call及apply

  function test(t1,t2){

       alert(this.color);

  }

 

  var obj = new Object;

  obj.color = "red";

 

  test.call(obj,t1,t2);

  test.apply(obj,new Array(t1,t2));

 

function ClassA(sColor){
    this.color = sColor;
    this.sayColor = function(){
    }
 }

function ClassB(sColor){

   //相当于重新定义了在ClassA中的方法
   // this.newMethod = ClassA;
    //this.newMethod(sColor);
    //delete this.newMethod;

    //改为

    ClassA.call(this,sColor);或ClassA.call(this,new Array(sColor));
}

 

3.原型链

  function ClassA(){

  }

  ClassA.prototype.color = "red";

  ClassA.prototype.sayColor(){

       alert(this.color);

 }

 

  function ClassB(){

  }

 

   ClassB.prototype = new ClassA();

   ClassB.prototype.otherMethod //Or otherField

 

4.混合方式

   function ClassA(sColor){

      this.color = sColor;

   }

   ClassA.prototype.sayColor(){

       alert(this.color);

  }

 

   function ClassB(sColor){

      ClassA.call(this,sColor);

   }

   ClassB.prototype = new ClassA();

   ClassB.prototype.otherMethod //Or otherField

 

浏览器中的JS

对于不支持JS的浏览器的解决方法

<script ><!--

//-->

及<noscript>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值