首先说函数的定义:
function Hanshu()
{
      //函数体...
}

这样我们就定义了一个名为Hanshu的函数,现在我们尝试调用一下这个函数。其实很简单,调用函数就是用函数的名称加括号,即:

Hanshu();

这样我们就调用了这个函数。

我们用一个按钮调用一下这个函数:将按钮的点击事件指向这个方法

<input type="button" value="click me" onclick="Hanshu()">

现在我在此方法中再写一个方法

我们在这个方法中将body的点击事件指向了一个新的方法,匿名方法。然后弹出click body
function Hanshu()
{
   document.body.onclick = new function()
   {
   alert('click body');
   };
}

现在我们尝试调用一下

<input type="button" value="click me" onclick="Hanshu()">

但是这样是不能实现每单击body时,弹出click body

因为当body去访问这个匿名方法时,找不到此方法

我们可以这么测试一下

function AddClick()
{
   // 这样不能实现把body的单击事件指给新的方法, 因为body不能访问在函数体里的函数
   /*
   document.body.onclick = new function()
   {
   alert('click body');
   };
   */

   // 这样可以实现
   document.body.onclick = BtnAn;

   // 如果把方法指向函数内的方法,则会出现错误:NeiHanshu未定义
   // document.body.onclick = NeiHanshu;

}



function BtnAn()
{
   alert('click body');


   //   function NeiHanshu()
   //   {
   //   alert('函数里的函数被调用');
   //   }
   //   NeiHanshu();


}
所以结果是:我们只能调用在外部的函数,不能调用函数里的函数,这也就是一个访问级别的问题。

作者: 尹紫慧 发表于 2011-04-29 08:25 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架