模拟实现自定义类

/**
 * Person类
 */
function Person(name, gender, birth) {
    this.name = name;     // 姓名
    this.gender = gender; // 性别
    this.birth = birth;   // 出生

    /**
     * 自我介绍方法
     *
     * @return void
     */
    this.intro = function () {
        console.info('俺叫%s(%s),出生于%d年。', this.name, this.gender, this.birth);
    };
}

let person = new Person('张三', '男', 2003);

console.info('姓名:%s', person.name);   // 姓名:张三
console.info('性别:%s', person.gender); // 性别:男
console.info('出生:%d', person.birth);  // 出生:2003

person.intro(); // 俺叫张三(男),出生于2003年。



ES6已经支持class关键字,具体使用可看下面的代码:

/**
 * Person类
 */
class Person {
    name = null;   // 姓名
    gender = null; // 性别
    birth = null;  // 出生

    /**
     * 构造方法
     *
     * @param name string 姓名
     * @param gender string 性别
     * @param birth int 出生
     */
    constructor(name, gender, birth) {
        this.name = name;     // 姓名
        this.gender = gender; // 性别
        this.birth = birth;   // 出生
    };

    /**
     * 自我介绍方法
     *
     * @return void
     */
    intro() {
        console.info('俺叫%s(%s),出生于%d年。', this.name, this.gender, this.birth);
    };
};

let person = new Person('张三', '男', 2003);

console.info('姓名:%s', person.name);   // 姓名:张三
console.info('性别:%s', person.gender); // 性别:男
console.info('出生:%d', person.birth);  // 出生:2003

person.intro(); // 俺叫张三(男),出生于2003年。

Copyright © 2024 码农人生. All Rights Reserved