javascript动态函数创建方法

发布时间:2019-08-13编辑:脚本学堂
本文介绍了javascript 动态函数的创建方法,有关javascript 动态函数的实例教程,有需要的朋友参考学习下。

动态函数必须用function对象来定义(function是javascript中的一个对象,是固定不变的,规定function对象的"f"必须大写,当是function时,定义函数时所使用的一个关键字:function ppp(x,y),当是function时(f大写时),是javascript中的对象)

创建动态函数的基本格式:
var 变量名 = new function(”参数1“,”参数2“,”参数n“,”执行语句”);
使用new关键字(new是javascript中一个关键字,也是固定的,我们在定义动态函数时必须要使用new来创建这个function对象)

先定义一个变量 ar 变量名,在这里,变量名是随便的,然后再使用new关键字创建一个function对象,然后再把这个对象赋值给这个任意的变量,也就是var 变量名 = new function
function后面的括号中先是传递给函数的参数,然后用一个逗号(,)隔开然后是这个函数要执行的功能的代码。

例子:
 

复制代码 代码示例:
<script languuage = "javascript">
var square = new function ("x","y","var sum ; sum = x+y;return sum;");
alert(square(2,3));
</script>
 

在function对象后面的括号里的每一部分内容都必须是字符串形式的,也就是说都必须用引号(“ ”或者是‘ ’)括起来,第一部分是传递给这个动态函数的第一个参数“x”,第二部分是传递给这个动态函数的第二个参数“y“,第三部分是这个函数要完成的功能的代码,这个函数要完成的功能是定义一个变量sum,让sum等于传递给这个函数的两个参数x和y的和,然后返回他们相加以后的值(return sum)。
然后,再编写一条调用这个函数的语句,在这里就可以像调用一个普通函数一样来调用这个变量square,square(2,3),给这个动态函数传递两个参数,然后让函数返回他们相加的结果,然后再alert(square(2,3))显示出结果来,结果是5。

例子:
 

复制代码 代码示例:
<script languuage = "javascript">
var square = new function ("x","y","var sum ; sum = x+y;return sum;");    //注意执行语句里要有分号
alert(square(2,3));
</script>

代码:
 

复制代码 代码示例:
<script language = "javascript">
function square (x,y)
{
         var sum;
         sum = x+y;
         return sum;
}
alert ( square (2,3));
</script>
 

以上二段是一样的,只不过一个是动态函数,一个是静态函数

现在通过下面:
 

复制代码 代码示例:
o=odom.createelement("script");
o.text=document.all.checkrule.value;
odom.body.appendchild(o);
 

可以增加一个checkrule函数,
但我多次执行这段代码会多次插入这个checkrule函数,请问我怎样先删除该新增的函数.
ps:odom表示的是另一个页面的document对象,不是本页的document,所以用typeof(odom.check_rule) 总是undefined

odom.frames.check_rule = null
同名函数会覆盖。
你给新增加的 script 加上一个 id 或者 name,然后删除时就可以利用该 id 或者 name 了
不过切记,一定要在 createelement 方法中就设定 id 或者 name

例如:

复制代码 代码示例:

o = document.createelement("<script language='javascript' id='aaa'>" + "</scr"+"ipt>");
  //合成校验规则 
  function docombjs(){ 
          var oeditor = fckeditorapi.getinstance('fckeditor1'); 
        var odom = oeditor.editordocument; 
        var elem=odom.getelementbyid("checkid"); 
        alert(elem); 
        if(elem!=null){ 
      elem.parentnode.removechild(elem); 
        } 
        o = odom.createelement("<script language='javascript' id='checkid'>" + "</scr"+"ipt>"); 

        //o=odom.createelement("script"); 
        o.text=document.all.checkrule.value; 
        odom.body.appendchild(o);   
}