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(参数)(参数);怎么理解?
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(参数)(参数);怎么理解?
初始化的一些参数
...
}这是匿名个函数 一般直接立即调用 就是如此一个括号 把函数体括起来
再加一个 给函数传的参数 也用括号括起来就是(function (a){...})(arg) arg就是a的参数
(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参数!
<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>