我应该退货吗?

4
在javascript方法中,如果不需要返回任何东西,我通常不会返回任何东西。但随后产生了一个问题:如果我没有返回任何东西,javascript如何清除内存?我知道JS使用垃圾回收器…所以它会为我清除内存。因此,我的实际问题是,在那些不期望任何返回值的情况下,例如以下情况,是否认为返回true或false是更好的做法?
// assuming we get birthday in mm/dd/year format
function setAge( birthDay )
{
    var _birthdaySplited = birthDay.split("/");
    this.age = new Date().getFullYear() - parseInt( _birthdaySplited[2] );

    // should I say..return true here?
}

3
如果我不返回任何东西,JavaScript 如何清除内存?清除什么内存? - Joe White
2
一个函数“返回”void(空)并没有什么问题。事实上,如果该函数不打算返回任何内容,只是完成某些操作,那么它就不应该返回任何东西。Void就是void。返回不需要的东西只会让人感到困惑。 - animuson
1
餐厅如何知道你吃完了?通常当你走出门时,他们会开始清理桌子,并且知道你还没有走出门,因为你的外套(或你自己)仍然在桌子上。 - Marc B
1
我想知道是谁认为这是一个好问题,它在我的脑海中并没有什么意义。 - Ruan Mendes
1
"我无法正确地理解会引发这样一个问题的思维混乱是何种程度的。"-- 查尔斯·巴贝奇 - Wayne
显示剩余3条评论
2个回答

9

即使在不期望任何返回值的情况下,像下面这种情况中,是否将返回true或false视为更好的做法?

不是。

如果我不返回任何内容,JavaScript 如何清除内存?

未显式返回值对垃圾回收几乎没有影响。我不确定您为什么认为它会有影响。


另外提一下,如果没有显式地返回任何内容,这会导致函数返回 undefined,这样做是否有用呢?你只是把一个返回值换成了另一个。顺便加一分。 - Adam Rackis
1
我认为这并不是非常相关的。楼主似乎对垃圾回收机制有些困惑。 - Matt Ball

6
即使您不返回任何内容,JavaScript运行时也知道函数已经执行完毕,现在可以进行清理工作。在这里返回一些虚假值是没有帮助的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接