学习JavaScript的过程,我相信不少人都有这个疑惑 ,return是什么,只知道他是一个返回,可是他能返回什么,他有用什么做用呢 ,至此我看了不少博客,也搜集了不少资料,若是有错误,请帮忙更正浏览器
return:闭包
第一返回函数值:函数
返回函数中的值,外部调用函数时,则会调用这个值。闭包中就是运用这个属性,调用函数内部的局部变量,以不影响全局变量。学习
下面来看一个例子吧:对象
当执行的时候,函数fn()执行了,页面会输出5,可是console出来的倒是一个undefined,不管你在fn()函数中写任何东西,变量获取弹出的都是undefined,blog
若是你须要他可以赋值给变量,这时候就须要用到return,事件
X变量获得的就是10;图片
任何数据都可以被returnip
咱们来return一个函数试试博客
var x=fn();
console.log(x);
function fn() {
var output=10;
document.write(output);
return function () {
alert(1);
}
}
猜猜这时候变量x会获得什么 ,
由于 return返回的是
function () {
alert(1);
}
因此X获得的也是函数体
如何获得函数里面的内容,
那就得给x加个括号让他执行,
X();
var x=fn();
x();
console.log(x);
function fn() {
var output=10;
document.write(output);
return function () {
alert(1);
}
}
固然若是没有赋值变量,咱们也能够直接
fn()();
让他进行两次执行,执行的春旭会先执行第一个fn()函数,在执行fn函数里面的第二个函数..
fn()();
function fn() {
var output=10;
document.write(output);
return function () {
alert(1);
}
}
获得的结果也是一样的..
咱们再来举一个例子.
var y=sum(7,8,2,7,2,1,5);
document.write(y);
function sum() {
var x=0;
for (var i=0; i<arguments.length; i++) // 获取被传递参数的数值。
{
x+=arguments[i];
}
return x
}
一个简单的参数加法运算, 若是你想取得函数内部的值,并将它赋予新的变量,那能够经过return在外部访问到内部的值.
第二当函数执行到return,函数后面将不会在执行后面的代码
alert( person(15));
function person(age) {
if (age<="16")
{
return age+ "你还年轻";
}
else {
return age +"你老了";
}
alert("这里的代码讲不会执行");
这里的return有点像break,做用都有截断后面代码的做用,可是return的功能殊不知是截断代码.
在js中return false的做用通常是用来取消默认动做的。好比你单击一个连接除了触发你的
onclick时间(若是你指定的话)之外还要触发一个默认事件就是执行页面的跳转。因此若是
你想取消对象的默认动做就能够return false。
<body onselectstart="return false"> </body> //这里的onselectstar 实际是一个时间,设置return false 禁止里面的文字图片被选中$("a.toggle").click(function () { $("#mydiv").toggle(); return false; // Prevent browser from visiting `#` }); //这个函数使用toggle来显示或者隐藏#mydiv,而后阻止浏览器继续访问href中指定的连接。