写作绅士,读作丧尸 X岛揭示板
顺猴者昌 逆猴者亡 首页版规 |用户系统 |移动客户端下载 | 丧尸路标 | | 常用图串及路标 | 请关注 官方公众号:【X岛揭示板】 官方微博: 【@X岛极速版】| 人,是会思考的芦苇
常用串:·豆知识·跑团板聊天室·公告汇总串·X岛路标

No.58706064 - 无标题 - 技术宅


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

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2023-07-20(四)23:01:39 ID:4WVuFwF [举报] [订阅] [只看PO] No.58706064 [回应] 管理
肥哥们,js求助
图中第41行的代码,在addPath方法接收函数作为第三个参数。我在循环里写了一个匿名函数作为参数传进去,希望每个path有一个与之对应的函数发送对应文件,然而结果是每个path对应同一个函数,并且是for循环最后一次的那个函数
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2023-07-20(四)23:57:38 ID:4WVuFwF (PO主) [举报] No.58707033 管理
目前这样给解决了,但感觉挺抽象的( ゚∀。)
无标题 无名氏 2023-07-21(五)00:04:15 ID:4WVuFwF (PO主) [举报] No.58707133 管理
我甚至尝试把函数放在循环里定义,不管是var还是let都没用。不是很懂这个js
无标题 无名氏 2023-07-21(五)00:05:20 ID:4WVuFwF (PO主) [举报] No.58707145 管理
不管是箭头函数还是匿名函数,到了addPath的对象里最后都变同一个函数了
无标题 无名氏 2023-07-21(五)07:19:43 ID:4oFnDNS [举报] No.58708984 管理
个人意见:我觉得更好的解决办法是定义一个类来包装你的i和匿名函数。或者找个办法把你的i存到函数的这个对象里面,然后用this去访问它。也就是说,自己手动去做这个变量的binding的操作,确保i是pass by value到你的匿名函数里面。
无标题 无名氏 2023-07-21(五)15:05:31 ID:qMeWoiI [举报] No.58713916 管理
最好是像上面说的封装一个对象,不过需要修改addPath的签名,如果不方便修改的话可以用一个简单函数工厂来保存闭包上下文
function factory(server,i){return function(s,i){s.sendFile(i)}}
然后下面的参数就可以写成 factory(server,i)
和eval差不多的原理
无标题 无名氏 2023-07-21(五)15:29:23 ID:4WVuFwF (PO主) [举报] No.58714212 管理
谢谢肥哥们

UP主: