js返回多个参数的方法,字符串返回,分数组,集合返回

chaoyueyuan 2016-07-11 10:56:21
在网上搜了一些js返回多个参数的方法,大多是用数组等返回,还需要在js里逐个接收返回的值,
我研究了一下,直接调用后将返回值作为js代码解析,这样就免去了接收后的处理,适合写在公用js里供其他方法调用,
以达到减少调用方法代码量的目的,各位大神帮忙鉴定下,是否有推广价值。
(算是原创吧,把各方法结合了一下,至少我还没有看见其他人这么用的,又或者是我看的不够的,行了,闲话少说,直接上代码吧)

<html>
<head>
<!-- @author:zhangzhihong 2016年7月11日 -->
<title>测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<script type="text/javascript">
<!--
function ceshi(){//zzh
var w = 50;
var h = 50;
eval(Operation(w,h));//zzh 接收回传的代码字符串为js代码,重新给变量赋值
exe(w,h);//用新赋值后的变量
}
//运算并返回值 zzh
function Operation(w,h){
w = w-10;
h = h-10;
alert(w+"--"+h);
var res = "w="+w+";h="+h+";";//拼接回传变量 zzh
return res;
}
//运行 zzh
function exe(w,h){
alert("w="+w);
alert("h="+h);
}
//-->
</script>
</head>
<body>
<form>
<center>
<input type="button" onclick="ceshi()" value="测试">
</center>
</form>
</body>
</html>


主要思路就是被调用方法返回拼接变量的字符串,然后再返回到调用方法解析为js变量。

...全文
1196 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaoyueyuan 2016-07-28
  • 打赏
  • 举报
回复
引用 24 楼 u012239465 的回复:
看你实际情况吧。。怎么说能不同的环境下用不同的方式。。如果要写通用的那就得考虑的大多数使用的方式了
恩恩,有道理。
chaoyueyuan 2016-07-28
  • 打赏
  • 举报
回复
引用 25 楼 theforever 的回复:
[quote=引用 13 楼 chaoyueyuan 的回复:] [quote=引用 11 楼 theforever 的回复:] 自己玩,怎样都可以,无所谓。 要放到网站上用,就必须考虑得全面些,eval的安全风险是很大的,假设你要是把这个拿去应聘,从这一点上完全能界定出你的经验达不到职业水准。 有时候,你觉得一种事情,大家几乎都不用某种方法去做,那么你想到的时候,最好也多个心眼,想想为什么大家都不这么做? 我有个朋友做生意,发现同行都不卖某种商品,而他觉得那种商品应该好卖(也可能有过一些顾客来问过他有没有),于是他就以为自己发现了先人一步的商机,冒然进了一大批。结果发现实际愿意买的人很少,而他们那类商品是不太好保存的,所以最终以赔本的价钱卖还没彻底卖完。这才知道为什么同行们都不进这种货。 创新,需要经验达到足够的水平时才可以谈。
说得有道理,但是不去尝试的话经验又从哪里来呢,有些亏,还是需要自己吃的,不过还是要谢谢提醒呢, 不过你分析的很准确,的确现在经验还不足,多谢前辈指点,还望多多交流。 [/quote] 你能这样想,很好。怎样看待和面对挫折与打击,预示着你将来能走多远。从心里为你高兴,也为中国未来高兴。任重道远,多努力吧。[/quote] 大神的鼓励还是很有高度的,多谢大神高大上的鼓励。
  • 打赏
  • 举报
回复
引用 13 楼 chaoyueyuan 的回复:
[quote=引用 11 楼 theforever 的回复:] 自己玩,怎样都可以,无所谓。 要放到网站上用,就必须考虑得全面些,eval的安全风险是很大的,假设你要是把这个拿去应聘,从这一点上完全能界定出你的经验达不到职业水准。 有时候,你觉得一种事情,大家几乎都不用某种方法去做,那么你想到的时候,最好也多个心眼,想想为什么大家都不这么做? 我有个朋友做生意,发现同行都不卖某种商品,而他觉得那种商品应该好卖(也可能有过一些顾客来问过他有没有),于是他就以为自己发现了先人一步的商机,冒然进了一大批。结果发现实际愿意买的人很少,而他们那类商品是不太好保存的,所以最终以赔本的价钱卖还没彻底卖完。这才知道为什么同行们都不进这种货。 创新,需要经验达到足够的水平时才可以谈。
说得有道理,但是不去尝试的话经验又从哪里来呢,有些亏,还是需要自己吃的,不过还是要谢谢提醒呢, 不过你分析的很准确,的确现在经验还不足,多谢前辈指点,还望多多交流。 [/quote] 你能这样想,很好。怎样看待和面对挫折与打击,预示着你将来能走多远。从心里为你高兴,也为中国未来高兴。任重道远,多努力吧。
木头海上漂 2016-07-19
  • 打赏
  • 举报
回复
看你实际情况吧。。怎么说能不同的环境下用不同的方式。。如果要写通用的那就得考虑的大多数使用的方式了
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 16 楼 bigbird_561 的回复:
,为什么不传递引用呢!
这个 传递引用 是怎么操作的呢,
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 20 楼 showbo 的回复:
[quote=引用 19 楼 chaoyueyuan 的回复:] [quote=引用 17 楼 showbo 的回复:] 返回json对象更加简单吧。。这种结构有点挫。。
看起来是挫了点哈,不过需求不一样,我这想法的初衷是让引用的时候写法简单些。[/quote] json也简单啊,而且不需要拼接字符串传,你的还没有考虑字符串传递的情况。。如果是字符串你的代码就出错了,需要用引号扩起内容,内容如果包含当前引号还得转义,不是几黑麻烦。。eval还有安全和效率问题。。[/quote] 嗯,麻烦的确是麻烦了点,我这个方法是用来解决系统兼容性的,以前IE加载兼容性可以获取到frame.index, 现在要求不加兼容性了,就获取不到,所以我就想写一个js方法获取一下,然后再获取不到的页面引入一下,这样的话,页面 只需要引入一行就行了,写json的话,要写好多,所有才搞出来这么个方法,不过这个效率的确是问题,而且安全性没有考虑到,话说这个安全性,是害怕像sql注入一样,字符串被改下么?
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 9 楼 qq_35617323 的回复:
话说开打web都要学什么。。小白一枚、、、
学js, html,css,jsp,还有需要大神们补充,,
Go 旅城通票 2016-07-19
  • 打赏
  • 举报
回复
引用 19 楼 chaoyueyuan 的回复:
[quote=引用 17 楼 showbo 的回复:] 返回json对象更加简单吧。。这种结构有点挫。。
看起来是挫了点哈,不过需求不一样,我这想法的初衷是让引用的时候写法简单些。[/quote] json也简单啊,而且不需要拼接字符串传,你的还没有考虑字符串传递的情况。。如果是字符串你的代码就出错了,需要用引号扩起内容,内容如果包含当前引号还得转义,不是几黑麻烦。。eval还有安全和效率问题。。
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 17 楼 showbo 的回复:
返回json对象更加简单吧。。这种结构有点挫。。
看起来是挫了点哈,不过需求不一样,我这想法的初衷是让引用的时候写法简单些。
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 8 楼 qq_35617323 的回复:
正在学习JS,顺道过来看看
谢谢路过,
Go 旅城通票 2016-07-19
  • 打赏
  • 举报
回复
返回json对象更加简单吧。。这种结构有点挫。。
bigbird_561 2016-07-19
  • 打赏
  • 举报
回复
,为什么不传递引用呢!
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 10 楼 zzgzzg00 的回复:
var res = "w="+w+";h="+h+"; 那这种拼接不也很啰嗦嘛 而且eval存在安全风险

es倒是提供了一种方式

function test(){
return Array.of(1,2,3,4);
}
let [a,,,b]=test();
console.log(a+'|'+b);
试试


嗯嗯,谢谢大神的指教,这个方法看起来很高端的样子,我试试。
但是貌似Array.of();的浏览器兼容性有限呢,

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 12 楼 qq_28479035 的回复:
话说这样干有卵用?研究点实用的吧
当然有用啊,就是用到了,才研究他的,不过这样用的风险,我倒是真的还不知道,大家说的,我多去试试。
chaoyueyuan 2016-07-19
  • 打赏
  • 举报
回复
引用 11 楼 theforever 的回复:
自己玩,怎样都可以,无所谓。 要放到网站上用,就必须考虑得全面些,eval的安全风险是很大的,假设你要是把这个拿去应聘,从这一点上完全能界定出你的经验达不到职业水准。 有时候,你觉得一种事情,大家几乎都不用某种方法去做,那么你想到的时候,最好也多个心眼,想想为什么大家都不这么做? 我有个朋友做生意,发现同行都不卖某种商品,而他觉得那种商品应该好卖(也可能有过一些顾客来问过他有没有),于是他就以为自己发现了先人一步的商机,冒然进了一大批。结果发现实际愿意买的人很少,而他们那类商品是不太好保存的,所以最终以赔本的价钱卖还没彻底卖完。这才知道为什么同行们都不进这种货。 创新,需要经验达到足够的水平时才可以谈。
说得有道理,但是不去尝试的话经验又从哪里来呢,有些亏,还是需要自己吃的,不过还是要谢谢提醒呢, 不过你分析的很准确,的确现在经验还不足,多谢前辈指点,还望多多交流。
qq_28479035 2016-07-18
  • 打赏
  • 举报
回复
话说这样干有卵用?研究点实用的吧
  • 打赏
  • 举报
回复
自己玩,怎样都可以,无所谓。 要放到网站上用,就必须考虑得全面些,eval的安全风险是很大的,假设你要是把这个拿去应聘,从这一点上完全能界定出你的经验达不到职业水准。 有时候,你觉得一种事情,大家几乎都不用某种方法去做,那么你想到的时候,最好也多个心眼,想想为什么大家都不这么做? 我有个朋友做生意,发现同行都不卖某种商品,而他觉得那种商品应该好卖(也可能有过一些顾客来问过他有没有),于是他就以为自己发现了先人一步的商机,冒然进了一大批。结果发现实际愿意买的人很少,而他们那类商品是不太好保存的,所以最终以赔本的价钱卖还没彻底卖完。这才知道为什么同行们都不进这种货。 创新,需要经验达到足够的水平时才可以谈。
似梦飞花 2016-07-16
  • 打赏
  • 举报
回复
var res = "w="+w+";h="+h+"; 那这种拼接不也很啰嗦嘛 而且eval存在安全风险 es倒是提供了一种方式

    function test(){
        return Array.of(1,2,3,4);
    }
    let [a,,,b]=test();
    console.log(a+'|'+b);
试试
qq_35617323 2016-07-15
  • 打赏
  • 举报
回复
话说开打web都要学什么。。小白一枚、、、
qq_35617323 2016-07-15
  • 打赏
  • 举报
回复
正在学习JS,顺道过来看看
加载更多回复(7)

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧