构造函数初始化游戏角色基础属性,通过首字母大写的函数定义模板,用this绑定name、level(默认1)、hp(默认100)、atk(默认10)等属性,并将takeDamage、isAlive等方法挂载到prototype以节省内存,最后用new创建实例并验证状态。

用构造函数初始化游戏角色基础属性,核心是定义一个函数作为模板,通过 new 关键字创建实例,自动赋予初始状态。
定义构造函数并设置基础属性
构造函数通常首字母大写,内部用 this 绑定实例属性。比如角色名、等级、血量、攻击力这些通用字段:
-
this.name = name—— 接收传入的角色名 -
this.level = level || 1—— 默认等级为 1,避免未传值时为undefined -
this.hp = hp || 100—— 血量设默认值,保证基础生存能力 -
this.atk = atk || 10—— 攻击力也提供合理默认
添加方法让角色能“行动”
方法可直接挂载在 this 上,成为每个实例的自有行为:
this.takeDamage = function(damage) { this.hp -= damage; }this.attack = function(target) { target.takeDamage(this.atk); }- 注意:这类写法会让每个实例都复制一份函数,内存稍有开销;更优方式是把方法放在原型上(见下一点)
优化:方法放原型上更节省内存
把共用方法统一挂到 Character.prototype,所有实例共享,不重复创建:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
立即学习“Java免费学习笔记(深入)”;
Character.prototype.takeDamage = function(damage) { this.hp = Math.max(0, this.hp - damage); };Character.prototype.isAlive = function() { return this.hp > 0; };- 这样既保持逻辑清晰,又提升性能,适合多人在线或大量角色场景
实例化并验证初始状态
用 new Character(...) 创建具体角色,立刻拥有完整基础属性:
const hero = new Character("剑客", 5, 120, 25);console.log(hero.name, hero.level, hero.hp); // "剑客" 5 120console.log(hero.isAlive()); // true
构造函数让角色初始化过程可复用、可预测、易扩展。


















