
1 jsonline May 9, 2014 var magicNumber = Math.sqrt(Math.pow(_from.x() - this.x,2) + Math.pow(_from.y() - this.y,2)); return magicNumber 用了 JS 的 AMD 之后,你这根本就不能算长了, define(function(){ return { // 省略200行 } }) |
2 jakwings May 9, 2014 断行缩进和变量赋值一样。可以根据是否要统一风格而选择要不要另起一个变量再return。反正要将return改成变量赋值也不麻烦。 假如不同return语句返回值类型不同,可以用变量名来明确要返回的是什么,可以少加注释,同时统一return语句的简洁风格。 |
3 Mutoo May 9, 2014 《重构》修改长return的 用的是“提炼方法” function dist(x1,y1,x2,y2) { ... } ... return dist(_from.x(), _from.y(), this.x, this.y); |
4 jprovim May 9, 2014 ```Javascript return Math.sqrt(Math.pow(_from.x() - this.x,2) + Math.pow(_from.y() - this.y,2)); ``` |
5 NemoAlex May 9, 2014 不要写比较长的 return 语句 除非你写的东西不是给人看的 |
7 zythum May 9, 2014 |
8 yukirock OP 多各位回。 我只是想於 format 的,倒不涉及怎……反正要也多就是「求距」的一句。 @jakwings > 假如不同return语句返回值类型不同,可以用变量名来明确要返回的是什么,可以少加注释,同时统一return语句的简洁风格。 我得有多理解方式。例如如果要返回一新生成的象,大致是先明,再操作,最後只要地 return newObject; 就好;但於的型,例如只涉及算的 double,跳中量也是一。 然例子太了,不用也,似乎不合拿。 @Mutoobr />似乎有化。 而且多一函用可能增加,竟函要用很多次。 竟是要交到校服器上行的作,我倒不想了可性牲性能。 @jprovim 看起不,非常感。 @NemoAlex > 不要写比较长的 return 语句 > 除非你写的东西不是给人看的 ……果然是因只是的求距 @zythum > 不好理解就写注释。多写点注释比什么都强。 的量和函起名都得花工夫了= = |
9 darasion May 10, 2014 人能看懂就行了。不用纠结形式。 |
10 banxi1988 May 11, 2014 @Mutoo 按照重构的方法, 其实在这种情况下,还可以使用另一个方法,就是引入解释性的局部变量 : 将: return Math.sqrt(Math.pow(_from.x() - this.x,2) + Math.pow(_from.y() - this.y,2)); 改成: float xpow = Math.pow(_from.x() - this.x,2); float ypow = Math.pow(_from.y() - this.y,2); return Math.sqrt(xpow+ypow); |
11 FrankHB May 12, 2014 标题问的只是语法问题,怎么连局部变量都来了。(不过后来好像还想要语义?那就随便吧。) 如果只是想治疗规范强迫症,具体结果看起来怎么样其实倒相对不重要了。 所有存在形式语法的语言通用的可保证结果唯一无歧义的方法:预测行数并指定上限,约定标点是否能出现在行首和行尾的策略,然后按节点高度优先顺序拆AST。(嘛,没有考虑对齐还真简单很多;能习惯有些情况下return后立刻换行就好……) |
12 uleh May 14, 2014 单看格式的话,我一般会这么写 return Math.sqrt( Math.pow(_from.x() - this.x,2) + Math.pow(_from.y() - this.y,2)); |
13 uleh May 14, 2014 空格被过滤掉了。。。 个人习惯是,函数里的内容换行。 并在调用处(即第一行的Math)空 4 格开始。 同级别的参数开头对齐。 也就是 2、3 行的 Math 是从第一行「.」的位置开始。 |