# ClassJs **Repository Path**: lisniuse/ClassJs ## Basic Information - **Project Name**: ClassJs - **Description**: 重写了JS设计模式中类的构造方式,让JS定义类的代码可读性更高更优雅,让JS更接近主流语言中定义类的方式。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2016-07-15 - **Last Updated**: 2024-04-18 ## Categories & Tags **Categories**: javascript-toolkits **Tags**: None ## README ``` ____ _ _ ____ / ___| | __ _ ___ ___ | / ___ | | | |/ _` / __/ __|_ | \___ \ | |___| | (_| \__ \__ \ |_| |___) \____|_|\__,_|___/___/\___/|____/ ``` ## 一、简介 重写了JS设计模式中类的构造方式,让JS定义类的代码可读性更高更优雅,让JS更接近主流语言中定义类的方式。 在ES6的语法糖还未全面普及之前,我们先来用ES5模拟类吧。 **首先在页面中引入:** ```html ``` **类的定义方法** ```js //定义 Class.$("Person",{ _constructor : function (name,age) { var me = this; me.name = name; me.age = age; }, showName: function () { alert(this.name); }, showAge: function () { alert(this.age); }, setName: function (name) { this.name = name; } }); //继承 Class.$("Man").extends("Person",{ _constructor : function (name,age,sex) { _baseCon(name,age); var me = this; me.sex = sex; }, showSex: function(){ alert(this.sex); }, setSex: function(sex){ this.sex = sex; }, }); ``` **类定义后的实例化:** ```js //父类实例化 var Bob = new Person("Bob","28"); Bob.showName(); Bob.showAge(); //子类实例化 var Jack = new Man("Jack","18","man"); Jack.showName(); Jack.showSex(); ```