ES6,面向对象,构造函数,继承

7 篇文章 0 订阅
这篇博客介绍了JavaScript中面向对象编程的概念,包括老版本的构造函数和继承方式,以及新版本引入的class关键字和super用法。通过对比老版与新版的实现,阐述了类和构造器的定义,方法的添加,以及继承的实现过程。作者强调理解原理的重要性,并提及将深入研究Java的相关概念以增进理解。
摘要由CSDN通过智能技术生成

首先说一下老版本的面向对象是什么样子的

主要是构造函数和继承是什么样的

1.类和构造函数一样
2.属性和方法分开写的

老版本构造函数

// 创建类(构造函数)
function User(name) {
    this.name = name
}
// prototype的运用,创建方法
User.prototype.showName = function () {
    console.log(this.name)
}
// 创建实例
var u1 = new User('able')
// 调用方法
u1.showName()

老版本继承

function VipUser(name, level) {
	// 继承父类的name属性(?不清楚是不是叫属性--可能是叫做参数)
    User.call(this, name)
    // 添加自己的属性(?)
    this.level = level
}
VipUser.prototype = new User()
VipUser.prototype.constructor = VipUser
// 给新增加的属性(?)添加方法
VipUser.prototype.showLevel = function () {
    console.log(this.level)
}
// 创建实例
var v1 = new VipUser('blue', 3)
// 调用方法
v1.showName()
v1.showLevel()

新版面向对象

1.有了 class 关键字、构造器
2.class 里面直接加方法 继承,
3.super 超类==父类

新版本构造函数

//有了 class 关键字
class User {
	// 有了构造器 
    constructor(name) {
        this.name = name
    }
	// 方法
    showName() {
        console.log(this.name)
    }
}
// 创建实例
var u1 = new User('able2')
// 调用方法
u1.showName()


新版本继承

// 类
class VipUser extends User {
	// 构造器
    constructor(name,level) {
        super(name)
        this.level = level
    }
    // 方法
    showLevel(){
        console.log(this.level)
    }
}
// 创建实例
v1 = new VipUser('blue', 3)
// 调用方法
v1.showLevel()

不懂得地方还是有,照葫芦画瓢不是很行,还得看看java面向对象和继承是怎么回事。
不过最最主要的还是理解原理。一通百通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值