javascript之嵌套函数使用方法

在javascript中允许使用嵌套函数:

嵌套函数

function fun1(){
function fun2(){
var a=50;
var b=a+5;
return a+b;
}
var a=900;
var b=Math.sqrt(a);
return b+fun2();
}

document.write("函数的返回值为:"+fun1());

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

记住这名话:
嵌套实际是要实现一种循环,是循环就有双个把柄让我们抓:一个是终止条件,一个是增量。

嵌套函数和普通函数有一点不同:
既然是嵌套函数,就是把自身当作值运用到函数体内。这就要求函数必须有一个返回值。就要用return语句。

举例分析:

例一:


复制代码 代码如下:

function a(x){
if(x<=1) return 1;
else return x*a(x-1);
}

例一是一个嵌套函数,让我们来找一下二个把柄:if(x<=1) return 1;这是终止条件,当x<=1时终止,else return x*a(x-1);这是增量,每次嵌套调用函数a()时参数都会减1。
所以这个例子也可以像例二中那样转换成一个循环体。

例二:


复制代码 代码如下:

function a(x){
if(x<=1) return 1;
else{
var m=1;
for(var i=2;i<=x;i++){
m*=i;
}
return m;
}
}

如例二所示,嵌套函数就是要实现这样的循环。

例三:


复制代码 代码如下:

function a(x){
if(x<=1) return 1;
else{
x--;
return (x+1)*a(x);
}
}

如例三,只要我们在嵌套函数中确定了二个把柄,放在哪里没关系都可以实现函数的嵌套,显然这样写没有例一那么好,是这样的。

时间: 2010-03-13

javascript自定义in_array()函数实现方法

本文实例讲述了javascript自定义in_array()函数实现方法.分享给大家供大家参考.具体如下: function in_array( what, where ){ var a=false; for(var i=0;i<where.length;i++){ if(what == where[i]){ a=true; break; } } return a; } 希望本文所述对大家的javascript程序设计有所帮助.

javascript中声明函数的方法及调用函数的返回值

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--js中声明函数的方法--> <script type="text/javascript"> //因为javascript是弱类型的语言,所以参数不需要加类型.函数的也不需要像c#那样要求所以路径都需要有返回值(这个不像c#语言,而且c#的方法也不需要在方法

javascript中setAttribute()函数使用方法及兼容性

setAttribute()函数可以设置对象的属性,如果不存在此属性,则会创建此属性. 语法结构: el.setAttribute(name,value) 参数列表: 参数 描述 name 必需.规定要设置的属性名. value 必需.规定要设置的属性值. 代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <script type="text/javas

javascript(js) join函数使用方法介绍

数组对象本身提供了许多方法用于对象本身的操作,join是其中一个方法. 格式: objArray.join(seperator) 用途:       以seperator指定的字符作为分隔符,将数组转换为字符串,当seperator为逗号时,其作用和toString()相同. 例子:       比如我们有个字符串"a","b","c"我们要输出为a,b,c这样的格式,那么我们可以这样: var a = ["a","

JavaScript中的函数嵌套使用

在JavaScript1.2之前,函数定义是只允许在顶层全局代码,但1.2的JavaScript可以嵌套函数定义其他函数中也是可以的. 仍然存在的函数定义可以循环或条件之内不会出现限制.在函数定义这些限制只适用于函数声明与函数语句. 函数文本(在JavaScript1.2引入的另一个功能)可能出现在任何JavaScript表达式,这意味着它们可以出现在if else语句内. 示例: 下面就是我们两个嵌套函数的例子.这可能会有点混乱,但它的工作原理完全正常: <script type="te

JavaScript 嵌套函数指向this对象错误的解决方法

先看一段嵌套了两层function的JavaScript代码: 复制代码 代码如下: var me = { name : 'Jimbor', blog : 'http://jmedia.cn/', sayMyName : function(){ var pre = 'My name is: '; function displayName(){ alert(pre + this.name); } displayName(); } } me.sayMyName(); 从代码上看,我们希望通过sayM

浅谈Javascript嵌套函数及闭包

[嵌套函数] JavaScript允许嵌入的函数,允许函数用作数据,并且在函数词法作用域下面,可以产生与传统面向对象语言不同的惊人地方. 首先,JavaScript的函数是通过词法来划分作用域的,而不是动态的划分作用域的,于是,函数的是在定义它们的作用域中运行,而不是在执行它们的作用域中运行,所以,当嵌套函数和它的外围函数定义在同一个词法作用域中的时候,是很容易理解的.比如下面很平淡无奇的代码: 复制代码 代码如下: var x = 'global'; function f () { var x

javascript 使用sleep函数的常见方法详解

本文实例讲述了javascript 使用sleep函数的常见方法.分享给大家供大家参考,具体如下: 一.什么是sleep函数? 花一点时间来聊一下sleep函数,首先什么是sleep函数? sleep是一种函数,他的作用是使程序暂停指定的时间,起到延时的效果. 例如: console.log('1'); sleep(5000); console.log('2'); 控制台输出数字1后会间隔5秒后输出数字2 当然上面的代码是不能执行的,因为js中是没有sleep方法的. 所以这一篇文章主要介绍几种

javascript带回调函数的异步脚本载入方法实例分析

本文实例讲述了javascript带回调函数的异步脚本载入方法.分享给大家供大家参考.具体实现方法如下: var Loader = function () { } Loader.prototype = { require: function (scripts, callback) { this.loadCount = 0; this.totalRequired = scripts.length; this.callback = callback; for (var i = 0; i < scri