ES6-类似java语法的面向对象即类class

简单介绍

  • 在ES6面向对象基本上与java的类实现类似

1 class关键字,构造器和类分开了

1.1 ES5代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES5旧方法</title>
    <script>
        function User(name, pass) {
            this.name = name;
            this.pass = pass;
        }
        User.prototype.showName = function() {
            alert(this.name);
        };
        User.prototype.showPass = function() {
            alert(this.pass);
        };
        let user = new User("blue", "123456");
        user.showName();
        user.showPass();
    </script>
</head>
<body>
</body>
</html>

1.2 ES6代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES6新方法</title>
    <script>
        class User {
            constructor(name, pass) {
                this.name = name;
                this.pass = pass;
            }
            showName() {
                alert(this.name);
            };
            showPass() {
                alert(this.pass);
            };
        }
        let user = new User("blue", "123456");
        user.showName();
        user.showPass();
    </script>
</head>
<body>
</body>
</html>

2.class里面直接加方法,简化继承核心

2.1 ES5代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES5继承</title>
    <script>
        function User(name, pass) {
            this.name = name;
            this.pass = pass;
        }
        User.prototype.showName = function() {
            alert(this.name);
        };
        User.prototype.showPass = function() {
            alert(this.pass);
        };
        // let user = new User("blue", "123456");
        // user.showName();
        // user.showPass();
        // -----继承
        function VipUser(name, pass, level) {
            User.call(this, name, pass);
            this.level = level;
        };
        VipUser.prototype = new User();
        VipUser.prototype.constructor = VipUser;
        VipUser.prototype.showLevel = function() {
            alert(this.level);
        };
        let user1 = new VipUser("blue", "123456", '3');
        user1.showName();
        user1.showPass();
        user1.showLevel();
    </script>
</head>
<body>
</body>
</html>

2.2 ES6代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES6新方法</title>
    <script>
        class User {
            constructor(name, pass) {
                this.name = name;
                this.pass = pass;
            }
            showName() {
                alert(this.name);
            };
            showPass() {
                alert(this.pass);
            };
        }
        // let user = new User("blue", "123456");
        // user.showName();
        // user.showPass();
        class VipUser extends User {
            constructor(name, pass, level) {
                super(name, pass);
                this.level = level;
            }
            showLevel() {
                alert(this.level);
            }
        }
        let user1 = new VipUser("blue", "123456", '3');
        user1.showName();
        user1.showPass();
        user1.showLevel();
    </script>
</head>
<body>
</body>
</html>
posted @   东血  阅读(134)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

本站勉强运行 1780 天 21 小时 49 分 57 秒

目录导航
目录导航
ES6-类似java语法的面向对象即类class
简单介绍
1 class关键字,构造器和类分开了
1.1 ES5代码如下
1.2 ES6代码如下
2.class里面直接加方法,简化继承核心
2.1 ES5代码如下
2.2 ES6代码如下
发布于 2020-05-22 00:37
点击右上角即可分享
微信分享提示