加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 怠惰な騎士 于 2017-7-8 16:24 编辑
2017-7-8 16:13:07 更新:
今天在1.5的rmmv js源码中发现,使用jsdoc的@extends来标记构造函数同样可以标记继承关系。
如下:
/** * @class Scene_Map * @extends Scene_Base * @constructor */ function Scene_Map() { /* code here */ }
/**
* @class Scene_Map
* @extends Scene_Base
* @constructor
*/
function Scene_Map() { /* code here */ }
------------------------------------------------------------------------------------------------------------------------------------------
WebStorm(10.0)直接解析RPG Maker MV的源代码(rpg_xxxx.js)时,无法正确解析这些类的继承关系。
即WebStorm无法检测使用如下写法撰写的类继承规则:
Window_Child.prototype = Object.create(Window_Parent.prototype)
因为这种写法不符合js编写规范。(由 shi ta ke 补充)(参见3楼,shi ta ke用户名全称会被过滤无法直接@ )
在一次巧合中发现直接通过创建一个名字中含有extend的“不做任何动作”的函数来触发WebStorm的类继承检测机制。
函数声明:
function __intellijHelper_extend(child, parent) {}
应用方式:
__intellijHelper_extend(Window_Child, Window_Parent);
完成此步骤后,便可以正常使用WebStorm的类导航功能,并在开发中准确知道当前子类是否重写了父类的某个方法。
通过建立完善的类继承关系并配合使用jsdoc,可以使得IDE对项目代码的解析更精准,从而更准确协助基于RMMV的项目的代码开发。
实际代码与效果:
|