工作中遇到的和积累的,面向对象的封装方法:
模板一
var Fn, __bind = function (fn, context) {
return function () {
return fn.apply(context, arguments);
};
};
(function () {
Fn = (function () {
Fnn.prototype.name = "Fn";
function Fn(params) {
var that = this;
this.id = params.id;
this.$div = $(params.div);
this.div_click = __bind(this.div_click, this);
this.addEventListeners();
return;
}
this.prototype.addEventListeners = function () {
this.$div.on("click", this.div_click);
};
Fnn.prototype.show = function () {
console.log(this.id);
};
Fnn.prototype.div_click = function () {
console.log(this.name);
};
return Fnn;
})();
}).call(this);
var fn = new Fn({id: 1,div: "div"});
- function(){}).call(this)
//形成一个封闭作用域 - Fn = (function(){ })()
// IIFE 变量Fn用来接收内部构造函数对象 - function Fnn(){}; return Fnn;
// 闭包