我正在学习使用各种书籍来了解JavaScript,但是我注意到我找不到一个足够的解释,说明何时需要使用return。我知道当你想从函数中返回一个值时,你需要使用它,但是有些例子,比如来自《JavaScript:精粹》的示例:
var quo = function(status) {
return {
get_status: function() {
return status;
}
};
};
var myQuo = quo("amazed");
document.writeln(myQuo.get_status());
为什么在quo函数的参数中已经有状态信息了,还要返回状态呢?换句话说,为什么简单地写成:
return {
get_status: status;
}
无法工作?
下一页中有另一个示例:
var add_the_handlers = function(nodes) {
var helper = function(i) {
return function(e) {
alert(i);
};
};
var i;
for (i = 0; i<nodes.length; i+=1) {
nodes[i].onclick = helper(i);
}
};
为什么我们要在一个函数中使用alert(i)来返回值,而不是直接使用alert(i)呢?
function(){ alert() }
和alert()
不是同一件事情。另外,如果你将它改成get_status: status
,那么它现在是一个属性而不是一个方法(所以用myQuo.get_status
代替myQuo.get_status()
),并且是只读的,而不是可修改的。 - Brad Christiealert(I)
,而是返回调用alert
的函数。 - Dave Newton