每个Ajax 框架都对Javascript 做了扩展,提供了很多常用函数,增强了 Javascript 的开发效率。在这里将对部分Dojo 中的常用函数做简单的介绍。由于Dojo的常用函数较多,也为方便大家阅读,将这些常用函数分为了五个类别分别进行介绍。本文将介绍第一部分的内容:Javascript基础扩展函数 。
* 本系列博文的绝大多数内容来自于对dojocampus.org上的dojo reference guide文档的翻译,在此也特别感谢文档的翻译者们:Fei Jia, Zhu Xiao Wen, Li Wen Bing, Zhang Jun, Hu Kuang, Huang Wei, Wu Min Qi, Mo Ying, Cheng Fu, Zhong Si Qi
dojo.hitch
dojo.hitch是一个优雅的函数。它会返回一个在指定作用域下执行指定语句的函数。通过调用这个函数,你可以很好地控制函数地执行,特别是在涉及到异步操作的时候。 比如下面的例子:
上面的例子无法正确的运行。你只会得到一个语义模糊的错误提示,比如: foo是一些变量未定义的错误。原因是,在如上例这样异步的回调函数中,当你赋给它一个关联表的时候,你改变了 ”foo”的作用域 .它的作用域不再关联到最初生成它的对象, xhr的参数对象上。要解决这个问题,你可以使用 hitch来强制这个函数保留它原来的作用域。正确的写法应该是像这样:
dojo.hitch需要两个参数,第一个参数指明了函数调用的关联作用域,第二个参数为一个函数对象或第一个对象中的成员函数名。
(注:关于 dojo.xhrGet,请参见后续的 AjaxIO部分)
dojo.partial
你是否想过要控制传递给函数的参数?举例来说,你是否有过这样的需求,设定传递给函数的第一个参数为已定义的值,而其它的参数仍然是可变化的。 dojo提供了一种方式可以满足这种需求。和 dojo.hitch类似, dojo.partial也是一个返回值为函数的函数。它所做的是让你可以用预定义的值锁定函数的前几个参数。这是一个非常强大的功能,特别是当你需要传入对象引用或者其它类似的给数据存储的通知函数。
下面就是一个使用 partial的示例:
那么,当 xhrGet函数返回的时候它会调用 dataLoaded函数 ,但是 xhrGet的 load函数期待的参数结构应该是: load(data, ioargs)。那么在 dataLoaded的第一个参数已经确定为 "someFirstParam"的情况下,我们如何去保证 xhrGet对于参数的要求能得到满足 ?对,使用 dojo.partial!看看你可以如何用 dojo.partial来做:
它所做的是创建一个新的函数,这个函数封装了 dataLoaded函数并且指定了第一个参数 "firstValue"。需要注意的是, dojo.partial允许你指定多个参数,因此你可以定义任意数量的参数作为函数固定前置的参数。
dojo.isString, dojo.isArray, dojo.isFunction, dojo.isObject, dojo.isArrayLike, dojo.isAlien
顾名思义,这几个函数都是用来判断给定的参数是否是特定的类型,是的话返回 true,否则返回 false。
dojo.isString:判断给定参数是否是字符串
dojo.isArray:判断一个对象是不是一个真正的数组。注意, dojo.isArray检查的是所传的值是不是由当前框架 (frame)里的 Array构造函数所创建的实例。如果一个数组来自于一个不同的框架,它就不是当前框架的数组,所以 dojo.isArray会返回 false。另外, arguments对象并不是一个数组。你可以用 dojo.isArrayLike(value)来检测这些类似数组的对象。
dojo.isFunction: 检查所传参数是不是一个函数对象。注意,这对于由dojo.declare 所创建的类(的构造函数)也一样有效。一个常见的模式是,得到一个字符串形式的类名全称,你可以用 dojo.isFunction来判断是否需要将其转换为一个函数:
当然,你也可以用dojo.isString 来做类似的事情。
dojo.isAlien用于检查所传参数是不是一个内建函数。
dojo.isObject用于检查所传参数是不是一个对象。
以上就是部分Dojo对于JavaScript的基础扩展函数,在下一部分中,会介绍Dojo对面向对象(OO)及包机制(package system)部分的一些常用函数。
分享到:
相关推荐
Dojo是一个开源的JavaScript框架,用于构建高性能的富客户端Web应用程序。它提供了一系列功能强大的工具和API,可以帮助开发者更轻松地处理DOM操作、AJAX调用、用户界面组件构建等任务。本文将详细介绍Dojo中几个...
《精通Dojo:JavaScript库深度解析》是一本专门为Dojo框架爱好者和开发者编写的书籍,旨在帮助读者深入理解和掌握Dojo这一强大的JavaScript库。Dojo是Web开发中的一个开源工具集,尤其在富互联网应用程序(RIA)开发...
Dojo提供了一系列用于处理Ajax请求的函数,其中`dojo.xhrGet`和`dojo.xhrPost`是最常用的两个函数。 ##### 4.1 发送GET请求 下面是一个简单的示例,展示了如何使用`dojo.xhrGet`发送GET请求并处理响应: ```...
JavaScript 库比较 —— Dojo、jQuery 和 PrototypeJS 在当今的 Web 开发中,JavaScript 库扮演着越来越重要的角色。这些库提供了许多有用的功能,可以帮助开发者快速构建 Web 应用程序。本文将对 Dojo、jQuery 和 ...
2. 引入Dojo核心库:通过`<script>`标签引入`dojo.js`,这是Dojo的基础文件,可能已经包含了部分常用模块。 3. 声明需要使用的模块:使用`dojo.require()`来引入所需的包或模块,确保它们在运行时可用。 Dojo为了...
Dojo 1.1 JavaScript 框架是一个强大的前端开发工具集,专为构建富互联网应用程序(RIA)而设计。这个框架在2005年由SitePen公司推出,旨在提供一套完整的JavaScript库,以简化Web开发过程,提高开发效率。Dojo的...
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信等多个方面。Dojo的核心在于它的模块化系统,这使得开发者可以按需加载代码,提高应用的性能和可维护...
《dojo中文文档-dojo手册》提供了全面而深入的Dojo框架知识,这是一份非常有价值的资源,对于想要理解和掌握Dojo JavaScript库的开发者来说至关重要。Dojo是一个强大的JavaScript工具包,它提供了丰富的功能,包括...
Dojo框架是JavaScript库,用于构建富客户端Web应用。在Dojo中,事件处理机制是核心功能之一,它使得开发者能有效地响应用户的交互。本篇将深入探讨Dojo的基础事件侦听器以及发布/预定通信机制。 首先,我们来看一下...
Dojo 是一个强大的JavaScript库,特别设计用于构建富互联网应用程序(RIA)。这个框架全面地涵盖了前端开发所需的各种功能,包括DOM操作、事件处理、动画效果、数据存储以及Ajax通信等。Dojo 的核心优势在于其模块化...
9. **dojo/_base/lang**: 包含了JavaScript语言扩展,如函数绑定、对象混合、类型检查等。 10. **模块加载优化**:压缩版`dojo.js`通过dojo的构建工具(如`build system`)进行优化,包括合并、压缩和混淆代码,以...
在"基础1-语言及浏览器实用程序"这一部分,我们将探讨Dojo的一些核心特性,包括DOM节点操作、类型检查、字符串工具、数组处理以及模块管理。 1. **Dojo查找DOM节点**: `dojo.byId()`函数是Dojo提供的一个方便的...
DOJO是一个强大的JavaScript库,它提供了丰富的功能,包括UI组件、数据管理、动画效果、Ajax交互以及模块化开发等。对于初学者来说,掌握DOJO的基础知识是迈向专业前端开发的重要一步。在基于Struts2框架的基础上...
【dojo练习】是一个关于JavaScript库Dojo Toolkit的学习资源集合,主要涵盖了Dojo的源码解析、工具使用以及一些实用API的教程。Dojo Toolkit是一个强大的前端开发框架,它提供了丰富的功能,包括DOM操作、事件处理、...
这个压缩包包含了Dojo框架的一个早期版本——dojo-release-1.1.2,它对于了解Dojo的历史和学习Ajax应用程序的构建非常有价值。在JavaScript的世界里,Ajax(异步JavaScript和XML)技术允许网页在不刷新整个页面的...
Dojo事件处理框架是JavaScript库Dojo Toolkit中的一个重要组成部分,它提供了一种统一的方式来管理和处理DOM事件以及JavaScript对象之间的交互。这个系统深受面向切面编程(AOP)思想的影响,尤其是其advice机制,...
`dojo.forEach`的灵活性在于它可以与其他Dojo函数结合使用,尤其是`dojo.query`,方便地处理DOM元素。例如,以下代码将禁用页面所有选择框: ```javascript dojo.forEach(dojo.query("select"), function(selectTag...
Dojo是一个成熟的JavaScript工具包,它提供了广泛的功能和组件,以满足复杂的Web开发需求。Dojo 1.9.0源码包,即"dojo-release-1.9.0-src.zip",是开发人员研究、定制和优化Dojo组件的宝贵资源。本文将详细介绍Dojo...
第1章Web GIS基础 1.1GIS及相关技术的发展 1.1.1Web开发技术的发展 1.1.2GIS的发展 1.1.3Web服务的发展 1.1.4Web GIS的发展 1.2OGC的Web服务规范 1.2.1OWS服务体系 1.2.2空间信息Web服务的角色与功能 1.2.3空间信息...
《精通Dojo(中文版)》是一本深入探讨JavaScript库Dojo的专业书籍,虽然书中所用的Dojo版本较低(1.5之前),但其内容仍然具有很高的参考价值。Dojo是一个强大的开源JavaScript工具包,它提供了丰富的功能,包括DOM...