window.functionName = new Function('xx','yy','zz');
function functionName (xx,yy){
    zz;
}
这2个有什么不一样么?一个jquery插件里看到的,换为下面那个写法就说找不到方法,why?

解决方案 »

  1.   

    貌似第一个functionName是全局变量了,还不清楚是不是这个原因
      

  2.   

    有点区别就是用function functionName(){}这种会先初始化
      

  3.   

    可以看看function functionName(){}是定义在哪的,如果没有定义在最外层,那它就不是window对象的方法
      

  4.   

    window.functionName = new Function('xx','yy','zz');
    function functionName (xx,yy){
        zz;
    }
    alert(window.functionName)就知道了
      

  5.   

    function functionName(xx,yy){
        alert(xx + yy);
    }
    window["functionName"](1, 2);
      

  6.   


    (function($) {
        $.sut = function(input, options) {
            test = new Function('alert(123);');
            /*function test(){
                alert(456);
            }*/
        },
        $.fn.sutSearch = function(){
            test();
        },})(jQuery);
    大概就是这个样子,调用被注释掉的test()方法就会说未定义,上面那个就没事