js function定义函数使用心得

1.最基本的作为一个本本分分的函数声明使用。

  

复制代码 代码如下:

  function func(){}

  或

  var func=function(){};

  2.作为一个类构造器使用:

  

复制代码 代码如下:

  function class(){}

  class.prototype={};

  var item=new class();

  3.作为闭包使用:

  

复制代码 代码如下:

  (function(){

  //独立作用域

  })();

  4.可以作为选择器使用:

  

复制代码 代码如下:

  var addEvent=new function(){

  if(!-[1,]) return function(elem,type,func){attachEvent(elem,'on'+type,func);};

  else return function(elem,type,func){addEventListener(elem,type,func,false);}

  };//避免了重复判断

  5.以上四中情况的混合应用:

  

复制代码 代码如下:

  var class=new function(){

  var privateArg;//静态私有变量

  function privateMethod=function(){};//静态私有方法

  return function(){/*真正的构造器*/};};

  6.利用Function处理ajax返回的js脚本:

  

复制代码 代码如下:

  var ajax_js_code=

  "{a:'a','b':'b','func':function(){alert('abc')}}";

  //假设此为服务器返回responseText

  ajax_js_code=

  "return "+ajax_js_code;

  //重构代码主体,根据需要可以有不同重构方法

  var ajax_exec=new Function(ajax_js_code);

  var result=ajax_exec();

  alert(result.a+":"+result.b);

  result.func();

  这种构建函数方式:var func=new Function(args1,args2,args3,...,body) args:参数(任意多个); body:函数主体

  如:var func=new Function("arg1","arg2","alert(arg1+':'+arg2)"); func("ooo","ppp");

  应注意的是,注意返回代码的格式,根据处理原理返回形式可有一下几种:

  

复制代码 代码如下:

  1.(function(){//代码})()

  2.{a:"abc",func:function){}}//散列表

  3.function(){}

  以上三种应该能处理大部分代码了。