自己写的一个很绕的Js 运用 prototype和allay

var qq = {};
qq.extend
= function (first, second) {
for (var prop in second) {
first[prop]
= second[prop];
}
};
qq.FileUploaderBasic
= function (o) {
this._options = {
data:
false,
url:
false,
msg: { typeerror:
"类型错误",
sizeerror:
"大小错误",
maxfile:
"限额错误"
}
};
qq.extend(
this._options, o);
this._handler = this._CreateUploadHandle();
this._button = this._CreateButton();
// this._preventLeaveInProgress();
};

qq.FileUploader
= function (o) {
qq.FileUploaderBasic.apply(
this, arguments);

qq.extend(
this._options, {
element:
null,
template:
"<div></div>"
});
qq.extend(
this._options, o);

this._element = this._options.element;
this._template = this._options.template;

};

qq.UploadHandlerForm
= function (o) {
//复杂没写
};
qq.UploadHandlerForm.prototype
= {
upload:
function (id, params) {
this._upload();
}
};

qq.extend(qq.UploadHandlerForm.prototype, {
_upload:
function (id) {
alert(
"upload");
}
});

qq.FileUploaderBasic.prototype
= {
_CreateUploadHandle:
function () {
var handlerClass, self = this;
handlerClass
= "UploadHandlerForm";
var _handler = new qq[handlerClass]() || {};
return _handler;
},
_CreateButton:
function () {
var self = this;
var input = document.createElement("input");
input.setAttribute(
"type", "button");
input.setAttribute(
"id", "inputfile");
$(input).click(
function () {
self._handler.upload();
});
$(document.body).append($(input));
return input;
},
_preventLeaveInProgress:
function () { }

};
qq.extend(qq.FileUploader.prototype, qq.FileUploaderBasic.prototype);
qq.extend(qq.FileUploader.prototype, {

/**
* delegate click event for cancel link
*
*/
_bindCancelEvent:
function () {

}
});

原文地址:https://www.cnblogs.com/shikyoh/p/2057495.html