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

2023 年 5 月 1 日
 yagamil

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

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

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

还有链式调用有点泛滥。

这样做的原因是做什么?

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

就,,感觉差不多,匿名还能省个名字。。
Leviathann
2023 年 5 月 1 日
你用 java7 的?
shyangs
2023 年 5 月 1 日
你先說你入門的語言和用的最多的語言是什麼.

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

当你发现 C 的复杂参数只可以传指针时,就瞬间明白 Javascript 的好处。 只可惜各互联网大佬不给力,无法做出一种直接可以编译 javacript 的方法.
Al0rid4l
2023 年 5 月 1 日
黑点动态类型啥的就算了, 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