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

Project1

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

[有事请教] js代码问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
670
在线时间
51 小时
注册时间
2018-6-27
帖子
49
跳转到指定楼层
1
发表于 2020-1-16 18:10:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x

如图所示,输出的两次alert竟然不同,我term()方法并没有改变那个值啊,为什么!?

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21666
在线时间
9418 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2020-1-16 19:38:50 | 只看该作者
你想问的是不是引用传递的问题

  1. var a = {}
  2. var b = a
  3. b['test'] = 123
  4. alert(a)
复制代码
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
670
在线时间
51 小时
注册时间
2018-6-27
帖子
49
3
 楼主| 发表于 2020-1-16 23:01:47 | 只看该作者
喵呜喵5 发表于 2020-1-16 19:38
你想问的是不是引用传递的问题

搜了一下我懂了,我以为形参是不改变原变量的。那我不想动原变量该怎么修改代码
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
670
在线时间
51 小时
注册时间
2018-6-27
帖子
49
4
 楼主| 发表于 2020-1-16 23:05:21 | 只看该作者
笹舟丶萚 发表于 2020-1-16 23:01
搜了一下我懂了,我以为形参是不改变原变量的。那我不想动原变量该怎么修改代码 ...

用clone是吧?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
670
在线时间
51 小时
注册时间
2018-6-27
帖子
49
5
 楼主| 发表于 2020-1-16 23:14:16 | 只看该作者

我知道了,用slice(0)就ok了,解决了
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21666
在线时间
9418 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

6
发表于 2020-1-17 01:42:26 | 只看该作者
本帖最后由 喵呜喵5 于 2020-1-17 01:43 编辑

别修改原数组就行了,例如 attr = attr.concat([]) 直接浅拷贝一个 attr 出来

或者你这段逻辑我自己习惯用 map
  1. term = function(attr){
  2.   return attr.map((e, index){
  3.     if (e === "等级"){ return TextManager.level }
  4.     else if (e === "HP"){ return TextManager.hp }
  5.     // .....省略一堆else if
  6.     else{ return attr[index] }
  7.   })
  8. }
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 20:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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