当我按照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
的使用。
答案 0 :(得分:1)
你还会如何从函数调用中返回数据?
像Array.prototype.shift()
这样的函数具有变革性,因为它们会修改数组。在内部,他们执行类似this[this.length] = newvalue
的操作,并以某种方式实际修改this
。
但是大多数功能都不具有变革性,它们会返回结果。
答案 1 :(得分:0)
return
允许您定义函数在被调用时传回的内容。
它不需要有一个返回值,你可以有一个什么都不返回的函数,它只是修改其他变量或打印一些东西然后继续。
如果没有明确指定要返回的其他值,则返回 undefined
答案 2 :(得分:0)
问题是toUpperCase首先不修改“this”。这是一个返回值的函数。
有些方法会修改它们被调用的对象(它们会修改“this”)..在这种情况下,您可以像编写它一样编写函数。但在这种情况下,您需要使用“返回”值。