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

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

创建绑定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等所有函数

相关文章
|
9月前
|
缓存 运维 监控
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
阿里云在百万服务器运维领域的丰富经验打造。
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
|
存储 Python
链表中插入节点
链表中插入节点
|
存储 自然语言处理 机器人
ROS2教程06 ROS2行动
这篇文章是关于ROS2(Robot Operating System 2)行动(Action)通信机制的教程,包括行动的概念、特点、命令行工具的使用,以及如何编写行动的客户端和服务器代码,并介绍了如何测试行动通信。
507 4
ROS2教程06 ROS2行动
|
Java
Java | 获取实体类中的所有字段,包括继承自其父类的字段
需要通过反射获取一个实体类中的所有字段,包括继承自其父类的字段。
998 0
|
SQL Java 调度
实时计算 Flink版产品使用问题之使用Spring Boot启动Flink处理任务时,使用Spring Boot的@Scheduled注解进行定时任务调度,出现内存占用过高,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
9月前
|
域名解析 安全 数据挖掘
企业为什么需要建设网站?
企业建站是现代企业生存和发展的重要手段,能提升品牌形象与实力展示,拓展市场与客户群体,提供便捷服务与沟通渠道,降低营销成本,提高营销效率,以及进行数据统计分析,优化经营决策。
156 12
|
存储 虚拟化 数据安全/隐私保护
|
关系型数据库 MySQL 测试技术
window下面安装phpstudy进行PHP开发
php的集成开发环境比较多,有wamp server,xmapp,phpstudy等。经过这些年的体验,发现相对来说个人还是比较喜欢phpstudy一点。主要原因有一下几点。维护的比较频繁,一直有更新。可以灵活切换多个php版本,这样针对于不同的php项目能够很好的适应。一件集成,傻瓜安装,让开发人员关注于开发本身。
353 0
|
缓存 JavaScript 前端开发
【 Vue3 性能优化】页面加载性能 与 更新性能
【 Vue3 性能优化】页面加载性能 与 更新性能
1288 0
|
Java Maven Spring
Spring Boot 学习研究笔记(十一)IDEA SpringBoot 打包jar 两种方式
Spring Boot 学习研究笔记(十一)IDEA SpringBoot 打包jar 两种方式
1465 0