javascript基础知识复习2-javascript的继承

JavaScript的继承(Inheritance):js是一门基于原型的语言,这意味着对象直接从其他对象继承(来自JavaScript语言精粹)。

1.对象冒充:将子类对象先当成父类对象进行构造(绑定父类的属性),再绑定子类特有的属性。

    function Person (name) {
        this.name = name;
        this.eat = function (){};
    }
    function Student (name, grade) {
        this.method = Person;
        this.method(name);
        delete this.method;
        this.grade = grade;
        this.study = function () {};
    }

2.call或apply方式

    function Teacher (name, title) {
        Person.call(this, name);
        this.title = title;
    }

3.原型链:所有函数对象都具有原型属性,该属性引用了堆空间中的原型对象,所有的对象都包含一个隐式的引用__proto__,用来指向在对象生成过程中所使用的构造函数的原型对象。

    function Farmer (name, plant) {
        this.name = name;
        this.plant = plant;
    }
    Farmer.prototype = new Person();
    Farmer.prototype.constructor = Farmer;
    Farmer.prototype.doFarmWork = function (){};


4.函数化:可以让对象拥有私有属性和私有方法

    var mammal = function (spec) {
        var that = {};
        that.get_name = function () {
            return spec.name; //私有属性
        }
        that.says = function () {
            return spec.saying || '';  //私有属性
        }
        return that;
    };
    var cat = function (spec) {
        spec.saying = spec.saying || 'meow';
        var that = mammal(spec);
        that.purr = function () {};
        that.get_name = function () {};
    };
    var myCat = cat({name : 'Henrietta'});


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值