设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1853|回复: 9
打印 上一主题 下一主题

[交流讨论] JS脚本的新的写法尝试

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1830
在线时间
314 小时
注册时间
2021-11-7
帖子
165
跳转到指定楼层
1
发表于 2021-11-17 15:04:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 夏虫沉默 于 2021-11-25 22:36 编辑

JavaScript es6中提供了类的关键字class,现在js可以通过class关键字模拟类的写法,看上去更像其他面向对象的语言(java、c++之类的)了;
然后我就尝试了一下新的写法,大家可以参考下:
JAVASCRIPT 代码复制
  1. //乘降窗口DriveWindow继承自Window_Command
  2. class DriveWindow extends Window_Command{
  3.         constructor(x,y){
  4.                 super(x,y);
  5.     }
  6.         makeCommandList(){
  7.                 this.addCommand("1号上车/下车",'onJu1',true);//队列里排序1的角色上车
  8.                 this.addCommand("2号上车/下车",'onJu2',false);//队列里排序2的角色上车,默认关闭
  9.                 this.addCommand("3号上车/下车",'onJu3',false);//队列里排序3的角色上车,默认关闭
  10.                 this.addCommand("取消",'cancel',true);
  11.         }
  12. }
  13. //乘降页面DriveScene继承自Scene_MenuBase
  14. class DriveScene extends Scene_MenuBase{
  15.         constructor(x,y){
  16.                 super(x,y);
  17.     }
  18.         create() {
  19.                 super.create(this);//调用父类Scene_MenuBase的create方法效果类似于:Scene_MenuBase.prototype.create.call(this);
  20.                 this._driveWindow=new DriveWindow(5,195);
  21.                 this.addWindow(this._driveWindow);
  22.                 this._driveWindow.setHandler('cancel',this.popScene.bind(this));//使得按取消可以返回上一视图,不然无法返回
  23.                 this._driveWindow.setHandler('onJu1',this.onDriveJu1.bind(this));
  24.                 this._driveWindow.setHandler('onJu2',this.onDriveJu2.bind(this));
  25.                 this._driveWindow.setHandler('onJu3',this.onDriveJu3.bind(this));
  26.         };
  27. }

旧代码

我又花了一些时间学习JS新的ES内容,原来ES6是15年新出的,(从某种程度上来说,已经不新了),有时间的话,会留下一些学习笔记,学习笔记尚杂乱。
以下部分内容参考于作者:zhoujie
来源:
https://www.cnblogs.com/zhoujie/p/node1.html
解构赋值
箭头函数=>
操作符...

2021-11-17_150053.jpg (130.13 KB, 下载次数: 22)

调用方式

调用方式

forTest.rar

1.69 KB, 下载次数: 7

测试的脚本内容

fortTest3.rar

2.66 KB, 下载次数: 6

学习笔记

欲速春风山劝阻,不得恰恰不得呼。

Lv3.寻梦者

梦石
0
星屑
4819
在线时间
673 小时
注册时间
2021-3-24
帖子
529
2
发表于 2021-11-17 15:59:07 | 只看该作者
可读性增加了 还有别的提升吗
全家活光光~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1830
在线时间
314 小时
注册时间
2021-11-7
帖子
165
3
 楼主| 发表于 2021-11-17 17:29:27 | 只看该作者
清澈淌漾 发表于 2021-11-17 15:59
可读性增加了 还有别的提升吗

代码的运行效率并未提高,因为底层还是使用原型链的方式实现的模拟类的写法,所以要先理解之前的写法才能方便找BUG;
减少了部分代码量,也更方便整理了;
默认使用的是JS的严格模式,变相提升了编写者的逻辑思维;
还有一个疑问,我的帖子编辑里怎么没有代码块blockcode的设置呢

点评

level<2?return:blockcode.enable;  发表于 2021-11-24 20:44
欲速春风山劝阻,不得恰恰不得呼。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21100
在线时间
9345 小时
注册时间
2012-6-19
帖子
7107

开拓者短篇九导演组冠军

4
发表于 2021-11-17 20:54:26 | 只看该作者
清澈淌漾 发表于 2021-11-17 15:59
可读性增加了 还有别的提升吗

可读性增加还不够吗
早年为了增加这可读性甚至专门发明了个 CoffeeScript,写完代码还得多一步把代码从 CoffeeScript 转译成 js 才能用

点评

我自己是非常推崇新写法的,一方面是因为新写法是标准了,以后没人用老写法了。另一方面老写法写起来真的太恶心……  发表于 2021-11-19 21:05
如果有写法或者性能提升是必学,否则还是看个人习惯了  发表于 2021-11-18 21:17
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
302
在线时间
33 小时
注册时间
2021-11-11
帖子
19
5
发表于 2021-11-18 17:57:27 | 只看该作者
大佬有空吗。我有个MOD想叫你帮我写

评分

参与人数 1+1 收起 理由
夏虫沉默 + 1 首先我也不是什么大佬,能力有限,是什么类.

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
302
在线时间
33 小时
注册时间
2021-11-11
帖子
19
6
发表于 2021-11-19 11:30:20 | 只看该作者
lightlanguage 发表于 2021-11-18 17:57
大佬有空吗。我有个MOD想叫你帮我写

emmm,可以私聊吗
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
910
在线时间
14 小时
注册时间
2015-5-14
帖子
5
7
发表于 2021-11-19 15:14:51 | 只看该作者
大佬哇。支持,也在做mm类游戏吗

评分

参与人数 1+1 收起 理由
夏虫沉默 + 1 是有打算做,完期未有期

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-6-3 21:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表