写作绅士,读作丧尸 X岛揭示板
 首页版规 |用户系统 |移动客户端下载 | 丧尸路标 | | 常用图串及路标 | 请关注 公众号:【矛盾苇草】| 人,是会思考的芦苇
常用串:·豆知识·跑团板聊天室·公告汇总串·X岛路标

No.62357332 - 无标题 - 技术宅


回应模式
No.62357332
名 称
E-mail
标题
颜文字
正文
附加图片
•程序语言、压制投稿、视频制作以及各计算机领域的技术问题
•我觉得还是CSDN靠谱一点
•本版发文间隔为15秒。

无标题 无名氏 2024-05-12(日)15:37:42 ID:TPWHppd [举报] [订阅] [只看PO] No.62357332 [回应] 管理
肥哥们,我现在在做一款小游戏的开发,我们有一个需求是在某些特定的时刻触发指定的函数,并且这个指定的函数要能够被修改
Tips 无名氏 2099-01-01 00:00:01 ID:Tips超级公民 [举报] No.9999999 管理
(`ε´ )独裁岛不爽不要玩
无标题 无名氏 2024-05-12(日)15:43:17 ID:TPWHppd (PO主) [举报] No.62357384 管理
我现在的做法是用两个文件分别放置对象的属性键值对,和对象对应的各类函数

比如bug_lib.json里存放了“工蚁”的属性,然后bug_func_lib.js里通过变量存放“工蚁”对象的函数键值对,如图所示

然后创建“工蚁”对象的时候会把这个json里的属性填装到class的生成函数里,然后绑定上对应的js文件里的函数

在这之后如果有需要触发指定函数的时候,就调用绑定在对象内部的指定函数就行了

但现在的问题是我们需要在某些情况下对一个对象的某些函数进行修改,但是我发现直接修改函数对象的话,会导致其他有着相同函数对象的对象的函数也跟着修改,似乎修改的是js文件里的变量的值,我猜测这个是因为js里面的绑定用的是指针

我本来打算用深拷贝复制一个函数对象然后绑定的,但是如果每一个对象都有一个完整的函数对象的话,之后的优化可能会出一些问题

我们目前比较理想的方法就是只修改对象绑定的指定的函数的指针情况,其他的函数继续绑定对应的对象指针,但是不知道这个要怎么实现呢|-` )
无标题 无名氏 2024-05-14(二)19:19:47 ID:70V5d50 [举报] No.62385830 管理
>>No.62357384
是纯c++吗,肥遇到这类问题会选择用观察者模式|∀゚
无标题 无名氏 2024-05-15(三)10:20:03 ID:j3lJQyS [举报] No.62392939 管理
一般这种情况可以使用策略模式,将函数设置为可配置的,js非常适合这种模式.
我没有从事js开发,不太明白每个对象都有一个完整的函数对象,会出现什么优化问题,可以浅谈一下吗.

class Ant{
constructor(){
this.hp = 10;
this.atk = 1;
this.say = function(){ console.log("default"); }
}
}
Let ant1 = new Ant();
Let ant2 = new Ant();

ant2.say = function(){ console.log("hi boy"); }
ant1.say();
ant2.say();
无标题 无名氏 2024-05-16(四)23:05:16 ID:nnWCtvH [举报] No.62413633 管理
js的每个类都会在引擎内部抽象出一个抽象类来加快运行,具体的不很了解了
无标题 无名氏 2024-05-18(六)12:40:41 ID:mmnugQ3 [举报] No.62429560 管理
代理模式

UP主: