收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1271|回复: 3

[求助] 如何一个外部变量作为参数传入函数,执行完成后改变外部变量的值

[复制链接]
发表于 2013-11-27 17:32:45 | 显示全部楼层 |阅读模式
一个外部变量作为参数传入函数,在函数中进行处理以后,改变外部变量的值
不知道能否实现呢?
-------------------------------------
类似这样的处理结果
a=1;
fun(a);
==>  a==2;
-------------------------------------
当然不要
fun(){a=2}
或者
fun(){return(2)}
a=fun()
这样就不符合要求了
发表于 2013-11-27 22:40:09 | 显示全部楼层

 提示:您可以先修改部分代码再运行

简单的代码需要用到的知识点还是很多的。
掌握原理需要理解下面链接中的知识,或者看高程2的变量作用域章节。
JavaScript中的基本类型和引用类型
https://github.com/NimoJs/note/issues/3
回复 支持 1 反对 0

使用道具 举报

发表于 2013-11-28 09:15:53 | 显示全部楼层
既然是全局变量,为何还要通过参数传入???
这不是多此一举吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-28 12:15:57 | 显示全部楼层

多谢!!
我自己开始想的一个方法是把变量名作为参数而不是变量本身。。

  1. var a = 1;
  2. function changeA(x){
  3.   eval(x + "=2");
  4. }
  5. changeA("a");
  6. console.log(a); // 2
复制代码
但这方法毕竟不是正途。。

按你的思路我改成了数组,看上去稍微简洁点。

  1. var c = [1];
  2. function changeC(x){
  3.   x[0] = 2;
  4. }
  5. changeC(c);
  6. console.log(c[0]) ; // 2
复制代码
再次感谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2019-11-19 15:55 , Processed in 0.109101 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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