Mootools中使用extend和implement给你的函数扩展功能或方法

2023-12-14 09:18

本文主要是介绍Mootools中使用extend和implement给你的函数扩展功能或方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  当然了,所谓的给函数扩展功能或方法指的是不修改原函数的前提下.

很多人都知道Mootools面向对象的机制不错,不过多数人都把面向对象理解错了,认为面向对象就是类,其实不然,面向对象的范围是非常广的.

那么我的这篇文章实际上就是面向对象的一种应用,只不过这个对象是一个function,而并非class.

//给指定Function扩展新的方法或属性
var Fun=function(){
  alert('a')
};
Fun.extend({
  aa:function(){
    alert('b');
  }
});
Fun();
Fun.aa();

在上边这段代码中函数Fun唯一的用途就是用来输出a这个字符,此时我们把这个函数理解成是一个对象,那如果我们要给这个函数增加一个新的方法,让他除了能输出a之外还能输出b

因此我就是用了extend对Fun这个对象进行了一次方法扩展,注意扩展之后的方法调用的时候会略有不同.

下边的例子同时演示了如何扩展属性和方法.

var arr=[];
var Fun=function(){
arr=[1,2];
};
Fun.extend({
len:function(){//给Fun扩展属性
return arr.length;
},
add:function(val){//给Fun扩展方法
arr.push(val);
}
});

var a=Fun.len(arr);
alert(a+'|'+arr);//此时输出:0|

Fun();//调用此函数给arr赋值

var a=Fun.len();
alert(a+'|'+arr);//此时输出:2|1,2

Fun.add('新的');

var a=Fun.len();
alert(a+'|'+arr);//此时输出:3|1,2,新的

Fun.add(['a','b','c']);

var a=Fun.len();
alert(a+'|'+arr);//此时输出:4|1,2,新的,a,b,c

len是我扩展的属性,用来取得arr的length数,而add则是一个方法,用来给arr这个array添加新的值

implement是用来给所有的函数扩展方法的,其实很好理解,我们已经知道在Mootools中有pass,bind,delay等等的方法,这些方法都是Mootools为我们预定义的

但是如果你在实际开发过程中发现他为我们预定义的方法不能满足我们的需求,此时怎么办呢,很简单,只要自己扩展就好了,看下边:

//扩展新的Function
var a=function(){};
var b=function(){};
Function.implement({
alert:function(msg){//直接alert输出内容
alert(msg);
},
output:function(msg){//firebug的控制台会输出内容,IE会报错
console.log(msg);
}
});
a.alert('1');
a.output('2');
b.output('3');


看过这篇文章之后您是否对Mootools的面向对象有了一个新的认识呢?

这篇关于Mootools中使用extend和implement给你的函数扩展功能或方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/491959

相关文章

Spring Integration Redis 使用示例详解

《SpringIntegrationRedis使用示例详解》本文给大家介绍SpringIntegrationRedis的配置与使用,涵盖依赖添加、Redis连接设置、分布式锁实现、消息通道配置及... 目录一、依赖配置1.1 Maven 依赖1.2 Gradle 依赖二、Redis 连接配置2.1 配置 R

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

MySQL数据脱敏的实现方法

《MySQL数据脱敏的实现方法》本文主要介绍了MySQL数据脱敏的实现方法,包括字符替换、加密等方法,通过工具类和数据库服务整合,确保敏感信息在查询结果中被掩码处理,感兴趣的可以了解一下... 目录一. 数据脱敏的方法二. 字符替换脱敏1. 创建数据脱敏工具类三. 整合到数据库操作1. 创建服务类进行数据库

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

MYSQL中information_schema的使用

《MYSQL中information_schema的使用》information_schema是MySQL中的一个虚拟数据库,用于提供关于MySQL服务器及其数据库的元数,这些元数据包括数据库名称、表... 目录关键要点什么是information_schema?主要功能使用示例mysql 中informa