Javascript 为什么有多个没有参数的对象方法?
我最近开始学习和实现JavaScript中的对象。但这让我想到,如果一个对象的功能可以放在一个方法中,那么如果其中一个方法不需要参数,为什么还要使用多个方法,比如Javascript 为什么有多个没有参数的对象方法?,javascript,javascript-objects,processing.js,khan-academy,Javascript,Javascript Objects,Processing.js,Khan Academy,我最近开始学习和实现JavaScript中的对象。但这让我想到,如果一个对象的功能可以放在一个方法中,那么如果其中一个方法不需要参数,为什么还要使用多个方法,比如Example.prototype.update=function()?我可以定义并调用一个方法,比如Example.prototype.do=function(),然后将这两个方法拥有的所有功能都放进去。它更简单,代码更少,但是在我的对象中有一个包含几个特定方法的结构可能更好?多谢各位 编辑:我问这个关于没有参数的方法的问题,因为如果
Example.prototype.update=function()
?我可以定义并调用一个方法,比如Example.prototype.do=function()
,然后将这两个方法拥有的所有功能都放进去。它更简单,代码更少,但是在我的对象中有一个包含几个特定方法的结构可能更好?多谢各位
编辑:我问这个关于没有参数的方法的问题,因为如果你把几个方法的所有功能都用参数组合起来,那么在一个函数中输入十几个参数将是一件非常繁琐的工作
谢谢你的否决票 有不同的原因: 概述 在《清洁代码:敏捷软件工艺手册》中,Robert Martin说: 函数的第一条规则是它们应该很小。第二 函数的规则是它们应该比那个小。功能 长度不应为100行。函数不应该是20行 长 随之而来的还有可维护性,我的意思是,如果功能很长,人类对编码的理解就会开始缺乏 可重用性 关于函数的全部要点是重用它们。想象一个函数多次调用同一对象的另一个函数。要合并它,您可能需要复制您的编码 其他原因
被接受的答案是正确的,但我也想提供一个更简单的答案 您考虑将
update()
和draw()
函数组合在一起的方式似乎是有意义的,因为您总是一个接一个地调用函数,但对于99.99%的其他函数来说,这是没有意义的
你可以把一个函数想象成告诉计算机做一件事(“一件事”的定义有目的地非常宽泛),而编程的全部要点就是以不同的组合调用函数,使计算机做一些有趣的事情。如果你把这些功能组合起来,你就会失去这种能力
考虑名为walkForward()
、turnlight()
和turnlight()
的示例函数。通过以不同的顺序调用这些函数,您可以告诉您的参与者走您想要的任何路径
如果我们应用您的逻辑,并将这三个函数合并为一个walk()
函数,那么该函数将做什么?我们如何告诉演员走一条特定的路
即使使用update()
和draw()
函数,一个接一个地调用它们也并不总是有意义的。可能您希望在不绘制每一帧的情况下运行模拟,因此可以多次调用update()
,而不调用draw()
。或者,您可能想暂停动画,因此您将停止调用update()
,而只需调用draw()
。如果你把它们组合成一个函数,你就会失去这种自由
编程就是告诉计算机做你想做的事情的自由,而组合函数则剥夺了这种自由。如果
.update
与完全一样。draw
你有一个观点。。。如果它们做不同的事情,你就找错了方向……不确定缺少参数是如何让函数做相同的事情的,显然它们没有t@JaromandaX不同的事情?@JaromandaX是正确的。考虑不需要参数的方法<代码> .Dimp()/Cudio >并返回对象状态和“代码> > DeleTeE())/代码>,它删除所有对象状态。这两个都不需要参数,但我认为代码实现为一个单独的函数都是疯狂的代码。“更新”和“绘制”方法是分开的,以便调用它们中的一个而不调用另一个。您能解释一下如何使用一个函数“弄乱范围”吗?我来讨论一下这个函数的作用范围。在这个函数中声明变量和循环变量,这些变量的作用域都是相同的。想象一下,var i=0
,它在整个函数中都是可用的,您不应该再次使用该变量……我明白了,在这个意义上,所有函数都只有一个函数也是非常有限的。