为啥 js 语言里面 那么喜欢嵌套,匿名

362 天前
 yagamil

作为一个后端,算法的开发者,平时会写点简单的页面。

不过看着 js,vue 的一些语法,感觉可读性非常差,函数喜欢用匿名的,在一个函数传参里面,把函数作为参数传入,导致的是,这个函数的参数 入参 非常冗长,不用 IDE ,根本不清楚这个匿名函数在哪里结束,因为里面可能还嵌套里其他参数。

好好定义一个函数名,设置一个好的名称,好好写,不行么?

还有链式调用有点泛滥。

这样做的原因是做什么?

4997 次点击
所在节点    程序员
50 条回复
GoldenSheep
362 天前
不懂,看 js 给人一种精神升华的感觉
jisuowei
362 天前
众所周知,编程的时候有一半的时间都耗费在起名字上(狗头
codehz
362 天前
还不是因为主流的事件处理方式(浏览器提供的,不是你想改就能改的),要求提供一个函数做回调,这种情况下,写一个函数名意味着函数声明的位置和使用的位置就有一定距离,原地写 function 也有太长的问题
还有就是,箭头函数不会有 this 的问题,不需要外面设置一个 var self = this 这样的写法(虽然现在大家都不用 class 了,不存在 this 的问题)
虽然我觉得还是视角的问题,把回调看作延续就会比较自然了
hello2090
362 天前
你完全可以按照你喜欢的不匿名,不链式来写啊
churchill
362 天前
第一点个人认为不是问题,其他语言像 c++ 一样也喜欢用 lamda ,参数再配上 auto 关键字,没有一个好的代码提示工具基本没法读
第二点不能同意更多,但有的人认为方法链可读性更高
wdssmq
362 天前
PHP: 可变函数 - Manual
https://www.php.net/manual/zh/functions.variable-functions.php

就,,感觉差不多,匿名还能省个名字。。
Leviathann
362 天前
你用 java7 的?
shyangs
362 天前
你先說你入門的語言和用的最多的語言是什麼.

母語會影響一個人的思維的。
veike
362 天前
js 里就是有大量的匿名,不过我看很多文档都推荐给每个函数起一个名字。
还有链式调用滥用,到什么程度算滥用呢?
大部分编程语言都能实现链式操作,js 里大量的链式调用我认为可读性并没有很糟糕。
并且可读性和每个人的书写习惯有关。jetbrains 的 IDE 里有每行最多多少个字符的辅助线,不知道大家会参照那个辅助线来写代码不
surfwave
362 天前
后端的习惯了 OO 的,要上手前端 js 这块,还是需要学学函数式编程,习惯了就好了
DOLLOR
362 天前
别人也可以反过来问,
为什么明明一个 function 就能解决的事情,某些编程语言非要写成一个 class 把方法封装起来,然后需要调用的时候,还要 new 一遍,再调用里面的方法。
Trello
362 天前
哦豁,说到嵌套,那绝对比不过 flutter 鹅心,吐了。
caqiko
362 天前
匿名的剪头回调函数应该是 js 推荐的写法
避免暴露太多不必要的对象给全局
Aloento
362 天前
毕竟是一个没有命名空间隔离的语言
rocmax
362 天前
seers
362 天前
虽然可读性差,但是写起来感觉爽飞,尤其是过几个月回头看自己写的,酸爽
ahhtree
362 天前
链式调用指的一般是函数式编程,函数式编程可读性可是很好的(屎坑除外)
makelove
362 天前
写了多年 python 和 js,我最讨厌 python 的一点是没有多行匿名函数
humbass
362 天前
我是先学 javascript ,后面学的 C

当你发现 C 的复杂参数只可以传指针时,就瞬间明白 Javascript 的好处。 只可惜各互联网大佬不给力,无法做出一种直接可以编译 javacript 的方法.
Al0rid4l
362 天前
黑点动态类型啥的就算了, lambda 表达式也来黑? 这真黑不动吧

你怎么不去问丘奇为什么要发明 lambda 演算呢

不得不讲上来就跟着谭浩强学 C 是容易把人学傻, 以为自己懂了所谓计算机的本质

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/936734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX