SWFUpload.prototype.initSettings = (function (oldInitSettings) {
return function () {
if (typeof(oldInitSettings) === "function") {
oldInitSettings.call(this);
} this.customSettings.queue_cancelled_flag = false;
this.customSettings.queue_upload_count = 0; this.settings.user_upload_complete_handler = this.settings.upload_complete_handler;
this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; this.settings.queue_complete_handler = this.settings.queue_complete_handler || null;
};
})(SWFUpload.prototype.initSettings);
请问这种写法SWFUpload.prototype.initSettings(参数)(参数);怎么理解?

解决方案 »

  1.   

    还是匿名函数调用,不过比较复杂,调用的参数是SWFUpload.prototype.initSettings
      

  2.   

    请问这种写法SWFUpload.prototype.initSettings(参数)(参数);怎么理解?
    初始化的一些参数
      

  3.   

    是这样的 function (oldInitSettings) {
    ...
    }这是匿名个函数 一般直接立即调用 就是如此一个括号 把函数体括起来
    再加一个 给函数传的参数 也用括号括起来就是(function (a){...})(arg) arg就是a的参数 
      

  4.   

    LZ估计是打错了,应该是SWFUpload.prototype.initSettings=()(参数);
      

  5.   


    (function (oldInitSettings) {
    return function () {
    if (typeof(oldInitSettings) === "function") {
    oldInitSettings.call(this);
    }this.customSettings.queue_cancelled_flag = false;
    this.customSettings.queue_upload_count = 0;this.settings.user_upload_complete_handler = this.settings.upload_complete_handler;
    this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler;this.settings.queue_complete_handler = this.settings.queue_complete_handler || null;
    };
    })(SWFUpload.prototype.initSettings);
    这种写法叫做匿名函数,大体格式如下:(function(a){
    alert(a);
    })(document.getElementById("Name").value); //假设value值为"你好"这里的输出结果会是"你好",相当于最后()括号中的值就是a参数!
      

  6.   

    举个例子<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>    <script type="text/javascript">
            function myFn(name){         
                return function(){//注意返回的是一个函数
                    alert('say hi '+ name);
                }
            };
            var SWFUpload = function(){};
            SWFUpload.prototype.initSettings=(myFn)('json');//调用myFn函数传入参数json,myFn返回的是函数哦。        var instance=new SWFUpload();
            instance.initSettings(); //调用</script>
    </head>
    <body>
    </body>
    </html>