javascript类与继承

    "父类"
    function Foo(name){
        this.name = name;
    }

    Foo.prototype.myName = function(){
        return this.name;
    };
    //让Bar继承Foo
    function Bar(name, label){
        Foo.call(this, name);//如果需要"父类"的变量
        this.label = label;
    }
    //"你不知道的javascript"一书中建议的继承方法,
    //这样Bar.prototype._proto_=Foo.prototype
    //书中说虽然Bar.prototype=new Foo()也可以,但是会有副作用
    //所以在Bar里面会有一句Foo.call(this, name);
    //之前在另外一书中看到的方法是Bar.prototype=new Foo(name)
    //那这样会一并将name关联到Bar.prototype
    Bar.prototype = Object.create(Foo.prototype);
    //自己的方法
    Bar.prototype.myLabel = function () {
        return this.label;
    };

    var bar = new Bar("a", "b");

    //bar既是Bar又是Foo
    //a instanceof A :在a整条原型链上是否有指向A.prototype的对象
    console.log(bar instanceof Bar);//true
    console.log(bar instanceof Foo);//true

    console.log(bar.myLabel());//b
    console.log(bar.myName());//a

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值