使用局部上下文创建控制器对象

简介: 使用局部上下文创建控制器对象

创建绑定this上下文环境的并且可重用的控制器对象,

//this使用局部上下文基础模型
(function($, exports){
var mod = function(includes){
  if(includes) this.include(includes);
 };
 mod.fn = mod.prototype;
//将函数上下文this绑定到mod上
 mod.fn.proxy = function(func){
  return $.proxy(func, this);
 };
//documentContent加载完后执行相应的func回调
 mod.fn.load = function(func){
  $(this.proxy(func));
 };
//扩展prototype的方法
 mod.fn.include = function(ob){
  $.extend(this, ob);
 };
//导出为Controller全局对象
 exports.Controller = mod;
})(jQuery, window);
//给局部上下文模型扩展方法
Controller.fn.unload = function(func){
 jQuery(window).bind('unload', this.proxy(func));
};
//创建Controller对象模块
(function($, Controller){
var mod = new Controller;
mod.toggleClass = function(e){
 console.log(this);
this.view.toggleClass('over', e.data);
};
//文档加载完毕,可视作window.onload
mod.load(function(){
this.view = $('#view');
//绑定mod实例到this.goggleClass,以防止toggleClass内的this指向mouseover事件函数
this.view.bind('mouseover', true, this.proxy(this.toggleClass));
this.view.bind('mouseout', false, this.proxy(this.toggleClass));
});
var abc = function(aa){
 console.log(1111);
};
mod.include({abc:abc});
//test 创建第二个控制器对象
var mod1 = new Controller();
console.log(mod1);
})(jQuery, Controller);

================================我是分割 线==========================================

 

第一步:创建控制器模型

这里最主要的是使用了jquery的$.proxy函数来实现上下文的绑定,并且使用exports.Controller方式来爆露导出mod方式,减少了全局对象的污染

第二步:生成控制器模型对象

每一个控制器内都可创建了控制器模型的实例,这样就通过prototype继承方式继承了load等所有函数

相关文章
|
16天前
|
移动开发 前端开发 JavaScript
全局属性和局部属性有什么区别?
【10月更文挑战第27天】全局属性和局部属性在HTML中各自发挥着重要的作用,共同构建了丰富多样、功能强大的HTML文档。全局属性提供了通用的基础功能和结构支持,而局部属性则针对不同元素的特定需求实现了各种具体的功能和语义表达,两者相互配合,使得HTML能够更好地满足各种网页开发的需求。
|
2月前
|
安全 Go 开发者
使用 contextvars 管理上下文变量
使用 contextvars 管理上下文变量
42 0
|
3月前
|
机器学习/深度学习 自然语言处理
上下文无关与上下文相关
上下文无关与上下文相关
第二种简单方式创建模型控制器的方式
第二种简单方式创建模型控制器的方式
|
3月前
|
Java 数据库连接 数据库
|
C#
C# 当前上下文中不存在InitializeComponent()
C#——当前上下文中不存在InitializeComponent()可能原因是:项目文件直接由外部加载进来时可能出现错误。可以先检查xaml文件的开头x:Class=“day27test02.MainWindow”是否是正确的类名。如果不是,改成对应的项目的类即可。这是本人碰到的这种情况通过这种方式得到解决的,仅供参考。
715 1
C# 当前上下文中不存在InitializeComponent()
|
11月前
|
C# 数据安全/隐私保护
C# 窗体之间参数互相传递的两种方法与使用
C# 窗体之间参数互相传递的两种方法与使用
|
存储 Linux 调度
上下文之->解密篇
上下文之->解密篇
44 0
|
Java 编译器
深入探索: 对象构造的隐藏功能与技巧
深入探索: 对象构造的隐藏功能与技巧
98 0