js的继承

本文深入讲解了JavaScript中三种主要的继承方式:封装函数实现继承、通过原型链实现继承以及使用call函数实现继承。探讨了每种方式的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、js继承的概念

  减少代码量,使代码可以循环复用

二、继承的进化史

  1、封装函数来实现两个实例对象间的继承   

//原始的对象实例
var ljc = {
name:"李嘉诚",
money:"10",
house:["别墅","洋房","草房"]
}

var lzk = {
name:"李泽楷"
}
//封装函数进行继承的操作
function extend(parent,child){
for(var k in parent){
if(!child[k])
child[k] = parent[k];    
}            
}
extend(ljc,lzk);

  2、通过原型来进行继承

    //通过原型来进行继承的实现
    //父对象构造函数
    function Person() {
        this.name = "zd";
        this.age = 13;
    }
    //子对象的构造函数
    function Student() {
        this.score = 30;
    }
    //实现
    Student.prototype = new Person();
    Student.prototype.constructor = Student;

  3、如果父构造需要传递参数的时候,则会出现问题。因为在子构造函数中无法改变this的指向。

    由此我们引入call的函数调用方式

 

 //通过call的方式进行继承
        //父对象构造函数
        function Person(name,age) {
        this.name = name;
        this.age = age;
        }
        //子对象的构造函数
        function Student(score) {
        this.score = score;
        }
        //改造子构造函数
        function Student(name,age,score) {
            Person.call(this,name,age);
            this.score = score;
        }

 

   

转载于:https://www.cnblogs.com/dhrwawa/p/10508410.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值