为什么javascript函数需要返回?

时间:2013-03-01 17:58:03

标签: javascript

当我按照JavaScript代码执行后,我获得了undefined

var ns=new String('hello world');
String.prototype.capitalAll=function(){
                                 this.toUpperCase()
                                       };
alert(ns.capitalAll()); // undefined

但是,当我添加return时,它会返回一个值

var ns=new String('hello world');
String.prototype.capitalAll=function(){
                                 return this.toUpperCase() // added return
                                       };
alert(ns.capitalAll()); // HELLO WORLD

为什么在这里和每个函数的末尾都需要return。我在许多return框架中看到了javascript的使用。

3 个答案:

答案 0 :(得分:1)

你还会如何从函数调用中返回数据?

Array.prototype.shift()这样的函数具有变革性,因为它们会修改数组。在内部,他们执行类似this[this.length] = newvalue的操作,并以某种方式实际修改this

但是大多数功能都不具有变革性,它们会返回结果。

答案 1 :(得分:0)

return允许您定义函数在被调用时传回的内容。

它不需要有一个返回值,你可以有一个什么都不返回的函数,它只是修改其他变量或打印一些东西然后继续。

如果没有明确指定要返回的其他值,则返回

undefined

答案 2 :(得分:0)

What toUpperCase does:

问题是toUpperCase首先不修改“this”。这是一个返回值的函数。

有些方法会修改它们被调用的对象(它们会修改“this”)..在这种情况下,您可以像编写它一样编写函数。但在这种情况下,您需要使用“返回”值。