# js-boot **Repository Path**: mi-yi/js-boot ## Basic Information - **Project Name**: js-boot - **Description**: JS boot让你的JS代码更容易维护。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-04 - **Last Updated**: 2022-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # js-boot #### 介绍 JS boot 一款前端依赖注入JS库,它非常的小,但是功能依旧强大。支持微信小程序、百度小程序、快应用,华为鸿蒙应用 #### 使用方法 ##### 例1: 你可以这样使用它 ``` //定义一个demo 逻辑业务 JSBoot.define("demoManager", function() { this.hello = function() { return "world"; } }); //定义一个demo 依赖demoManager 的业务 JSBoot.define("demoService", ["demoManager"], function() { this.hello = function() { return "hello-" + this.refs.demoManager.hello(); } }); ``` 使用:打印HelloWorld ```
``` 当你使用它你会发现你的代码非常容易维护,其根本在于它的依赖注入特性。 ##### 例2: ``` //定义常量 JSBoot.define("rpgConstants", function() { //血量 this.HP = 0x1000; //蓝条 this.MP = 0x1001; //坐标X this.LOCATION_X = 0x1; //坐标Y this.LOCATION_Y = 0x2; //攻击力 this.ATTACK = 0x2000; //防御力 this.DEFENSE = 0x2001; //人物 this.OBJECT_TYPE_CHARACTER = 0x1; //怪物 this.OBJECT_TYPE_MONSTER = 0x2; //道具 this.OBJECT_TYPE_PROP_ITEM = 0x3; //装备 this.OBJECT_TYPE_EQUIPMENT_ITEM = 0x4; //地形 this.OBJECT_TYPE_LAND_ITEM = 0x5; }); /** * 定义主角 */ JSBoot.define("main", ["rpgConstants"], function() { this.id = 0x1; this.name = "攻击"; this.gameContext = null; this.properties = {}; this.init = function() { var constants = this.refs.rpgConstants; this.properties[constants.HP] = 1000; this.properties[constants.ATTACK] = 100; this.properties[constants.DEFENSE] = 30; } }); /** * 定义怪物 */ JSBoot.define("monster", ["rpgConstants"], function() { this.id = 0x2; this.name = "攻击"; this.gameContext = null; this.properties = {}; this.init = function() { var constants = this.refs.rpgConstants; this.properties[constants.HP] = 600; this.properties[constants.ATTACK] = 20; this.properties[constants.DEFENSE] = 80; } }); /** * 定义攻击技能 */ JSBoot.define("attack", ["rpgConstants"], function() { this.id = 0x1; this.name = "攻击"; this.gameContext = null; //技能算法 this.algorithm = function(role, pool) { var constants = this.refs.rpgConstants; var properties = role.properties; for(var obj in pool) { //这里可以规定射程,触发条件,此处可以实现群攻还是单体攻击 var triggerConditions = true; if(!triggerConditions) { continue; } //攻击 - 防御 = 减少的血量 var reduceBlood = role.properties[constants.ATTACK] - pool[obj].properties[constants.DEFENSE]; pool[obj].properties[constants.HP] -= reduceBlood; } } }); ``` 然后你的游戏就可以这样往下开展了 ``` var bootContext = JSBoot.run(); var pool = JSBoot.pool; var monsters = {}; monsters.monster = pool["monster"]; var main = pool["main"]; //进攻前的怪物属性 console.log(JSON.stringify(pool["monster"])); //主角调用攻击算法进攻怪物 pool["attack"].algorithm(main, monsters); //进攻后的怪物属性 console.log(JSON.stringify(pool["monster"])); ```