mootools框架【四】-Function篇:主要方法解析

内容说明:

闭包是javascript中非常强大的工具,在实际应用开发中,我们基本上都会用到。从各个javascript框架中,我们也可以到处看到闭包的影子。mootools在javascript的Function上扩展出了一些十分方便的创建函数闭包的方法,其中一些我们在prototype.js中也使用过,类如bind,bindAsEventListener等。

对Function的扩展,mootools主要提供了一个create方法来创建闭包,这个方法其实实现了mootools对Function的所有扩展功能,但是一般我们不会直接去用它,而是使用mootools基于这个create方法派生出的其他方法。

1.方法:create

参数选项列表:

bind:创建的闭包函数中this所指向的对象。默认指向当前函数。

event:默认为false;如果为true,则创建的闭包函数将会作为一个事件监

听器,传入的第一个参数是一个event对象;如果为一个类名,则

会创建这个类的一个实例,并把event对象传入该类

arguments:一个以数组形式传入创建的闭包函数的参数列表。如果同时指  定了上面的event选项和本arguments选项,则事件对象event 对象将作为参数列表中的第一个,而其他参数排在其后。

delay:延迟执行的毫秒数(setTimeout的功能)。默认不延迟执行。如果指定

了,则调用该创建的闭包函数时将按指定的毫秒数延迟执行(调用返

回一个时间处理句柄)。

periodical:间隔执行的毫秒数(setInterval的功能)。默认不进行间隔执行。

如果指定了,则调用该创建的闭包函数后,会每间隔指定的毫秒

数后触发执行(调用返回一个时间处理句柄)。

attempt:如果指定为true,则再创建闭包的过程中,将会使用捕捉异常,如

果无异常抛出,则返回正常的闭包函数;如果发生异常,则返回捕捉到的异常对象。默认为false。

例子:

<input type="button" value="test" onclick="b()"/>function myClass(){  alert('X:' + event.clientX);}function a(){  alert('Base...');}var b = a.create({'event':myClass});//按下按钮后,将先alert出如"X:33",接着alert  function a(p1,p2){ alert(this.getTime()); alert(p1+'||'+p2);}var b = a.create({'bind':new Date(),'arguments':[100,200]});b();//alert出如"1233445"//alert出"100||200"

2.方法:pass

参数列表:

args:数组形式传入的参数

bind:可选。this指向的对象

作用:create的功能简化版。实现的即是create中选项'arguments'的功能。

例子:

function a(p1,p2){alert(p1+'||'+p2);}var b = a.pass([100,200]);b();

3.方法:attempt

参数列表:

args:数组形式传入的参数

bind:可选。this指向的对象

作用:create的功能简化版,并且创建闭包函数后执行。实现的即是create

中选项'attempt'为true时的功能。

例子:myFunc.attempt([100,200]);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索函数
, 参数
, 方法
, 闭包
, create
, js 闭包 this 指向
, 一个
, 创建闭包
settimeout闭包
,以便于您获取更多的相关知识。

时间: 2024-09-30 21:02:44

mootools框架【四】-Function篇:主要方法解析的相关文章

Yii框架中sphinx索引配置方法解析_php实例

本文实例讲述了Yii框架中sphinx索引配置方法.分享给大家供大家参考,具体如下: 请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库 #源定义 source mysql { type = mysql sql_host = localhost sql_user = root sql_pass = root sql_db = yii2 sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query

Yii框架中sphinx索引配置方法解析

本文实例讲述了Yii框架中sphinx索引配置方法.分享给大家供大家参考,具体如下: 请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库 #源定义 source mysql { type = mysql sql_host = localhost sql_user = root sql_pass = root sql_db = yii2 sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query

mootools框架【六】-Event篇:主要属性及方法解析

说明:mootools中定义了一个Event类,它提供了对原始window的事件对象event的扩展,使用的时候,可以把原来的event对象作为Event的构造方法参数传入: var event=new Event(event); 这样,返回的event就包含了所有mootools经过扩展的功能,具体扩展的属性和方法如下: ===========================属性=========================== shift:当触发的事件是键盘按键事件时,判断按下的按键是否

mootools框架【一】-Element篇:高级应用举例

前台: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

thinkPHP5.0框架配置格式、加载解析与读取方法

本文实例讲述了thinkPHP5.0框架配置格式.加载解析与读取方法.分享给大家供大家参考,具体如下: ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式. PHP数组定义 返回PHP数组的方式是默认的配置定义格式,例如: //项目配置文件 return [ // 默认模块名 'default_module' => 'index', // 默认控制器名 'default_controller' => 'Index', // 默认操作名 'default_action' =

开发自己的Web服务处理程序(以支持Ajax框架异步调用Web服务方法)

当你添加Asp.net AJAX功能到你的Web程序的时候,你需要在Web.config中做一些改变,需要你显式地移除默认的ASMX处理程序并且添加asp.net ajax框架自己的脚本处理器来作为ASMX处理程序.在上一篇异步调用Web服务方法中,我们谈论过,ajax框架的asmx(ScriptHandler)是不支持异步调用Web服务方法的,所以为了让asp.netajax支持异步Web方法调用,我们需要避开该处理器,以提供自定义的处理器来取代它. Asp.netAJAX框架的ASMX处理器

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的分析,探索OkHttp这个框架的使用和封装 一.追其原理 Android系统提供了两种HTTP通信类 HttpURLConnection HttpClient Google推荐使用HttpURLConnection,这个没必要多说,事实上,我这篇写的应该算是比较晚了,很多优秀的博文都已经提出了这些观

CI框架实现cookie登陆的方法详解_php实例

本文实例讲述了CI框架实现cookie登陆的方法.分享给大家供大家参考,具体如下: 第一步:login.php //登陆方法 public function login(){ //如果用户名和密码为空,则返回登陆页面 if(empty($_POST['username']) || empty($_POST['password'])){ $data['verifycode'] = rand(1000,9999);//生成一个四位数字的验证码 //将验证码放入session中,注意:参数是数组的格式

CI框架实现框架前后端分离的方法详解

本文实例分析了CI框架实现框架前后端分离的方法.分享给大家供大家参考,具体如下: 我们在使用CI框架开发中(或者使用所有的其他框架开发中),总是习惯于将所开发项目的前端和后台分离开来,将各自的控制器.模型或视图放到不同的文件夹中.在这一点上ThinkPHP框架要比CI框架更要方便一些.这篇博文我们就讲述如何实现根据CI框架开发将前后端实现分离.(本文以本人开发的Pkadmin后台管理系统为例,Pkadmin后台管理系统是基于Codeigniter_v3.1.0框架和Olive Admin后台模版