2022年mootools中文教程 .pdf
《2022年mootools中文教程 .pdf》由会员分享,可在线阅读,更多相关《2022年mootools中文教程 .pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、mootools【一】 - 起步篇以前一直在用prototype.js ,最近发现了mootools, 据说也相当不错,它是个纯OO 的 javascript 框架,所以拿来学习学习,把学习经过记录下来。粗略看了下, mootools 很貌似 prototype, 所以用过 prototype框架的人应该很容易上手的。mootools 提供的功能高度模块化,可以根据实际需要来裁剪。它的核心库是Moo.js 和 Utility.js ,Moo.js 里包含了实现OO 的基础类 ,Utility.js提供了最常用的工具函数的封装。-Moo.js- prototype.js里提供了如下形式来创建我们
2、的对象: var Cat = Class.create(); Person.prototype = initialize: function(name) this.name = name; ; var cat = new Cat (kitty); alert(cat.name); 对应 ,mootools 使用如下形式 : var Cat = new Class( initialize: function(name) this.name = name; ); var cat = new Cat (kitty); alert(cat.name); 恩,两者看起来很像,不过,好像mootools
3、这种方式更加符合OO 的习惯 (不过也要看各人喜欢的啦)。Class 进行继承 ,mootools是这样做的 : var Animal = new Class( initialize: function(name) this.name = name; ); var Cat = Animal.extend( initialize: function(name,age) this.parent(name); /调用 Animal 的 initialize 方法this.age = age; ); 是的,相当好用。Class.implement方法从功能上来理解是对已经定义好的类进行扩展,用法如下
4、: var Person = new Class( 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - initialize: function(name) this.name = name; ); Person.implement( initialize: function(name,age) this.name = name; this.age = age; , myAction: function() alert(this.
5、name+-+this.age); ); var p = new Person(zarknight,24); p.myAction(); 这和 java 中的实现接口好像不是一个概念. mootools 对 Object 扩展了一个extend 方法 ,它有两个参数,作用是复制第二个参数对象的所有属性到第一参数对象中去,同名属性将覆盖为第二个参数中的相应属性:var firstOb = name: John, lastName: Doe ; var secondOb = age: 20, sex: male, lastName: Dorian ; Object.extend(firstOb,
6、secondOb); /firstOb将变成 : name: John, lastName: Dorian, age: 20, sex: male ; -Moo.js- $type 作用:基本上是对typeof 的扩展 ,返回输入参数的类型例子:var x = $type(abcdefg); 返回值:element - DOM 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - textnode - DOM 文本节点whitesp
7、ace - DOM 空白节点array - 数组object - 对象string - 字符串number - 数字boolean - 布尔型function - 函数false - 如果是未定义或则不是以上列出的类型$chk 作用:如果输入参数是数值(包括0)或是对象 (不为 null 或 undefined), 则返回 true, 否则返回 false var x = $chk(abcde); /true var y = $chk(0); /true var z = $(null); /false $pick 作用:如果第一个参数对象存在,则返回这个对象;否则返回第二个参数对象var x
8、= $pick(openfdc,zarknight); /openfdc var y = $pick(null,zarknight); /zarknight var z = $pick(1, 2); /1 $random 作用:产生一个介于(包括 )指定的最大范围值和最小范围值之间的随机整数var x = $random(1,100); / 产生一个 1100 之间的随机整数$clear 作用:其实就是clearTimeout和 clearInterval都调用一遍var timer1 = setInterval(abc(),1000); timer1 = $clear(timer1); va
9、r timer2 = aFunc.delay(1000); /delay是 mootools 对 Function 的扩展 ,具体用法看 mootools 文档或我的后文 . timer2 = $clear(timer2); 另外, mootools 往 window 对象里摆了这么些属性,用来作为检测浏览器类型的工具:window.ie window.ie6 window.ie7 window.khtml window.gecko mootools【二】 - Array篇由于 JavaScript1.5 对 Array 增加了一些比较好用的方法,如forEach,filter,map,eve
10、ry,som,indexOf,但是在还不支持JavaScript1.5 的浏览器里是不能用得,所以,mootools 它通过扩展 Array 来使其实现对这些方法的支持: -Array.js- Array 对象的 forEach 方法原型: Array.prototype.forEach(callBack: Function, thisObject: Object) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 作用:对数组
11、进行迭代操作,它有两个参数,第一个参数callBack 是每次迭代所执行的函数,第二个参数thisObject可选,是要绑定到迭代执行的函数上的对象(也就是函数callBack 中的 this 所指向的对象 ) / 用法一var arr = 1,2,3,4,5,6; arr.forEach(function(e) alert(e); ); / 用法二var arr = 1,2,3,4,5,6; var obj = hello!; arr.forEach(function(e) alert(e+-+this); ,obj); / 用法三function putElt(element, index
12、, array) document.write(pos + index + in array ( + array + ) is + element + ); 2, 5, 9.forEach(putElt); Array 对象的 filter 方法原型: Array.prototype.filter(callBack: Function, thisObject: Object) 作用:迭代数组,每个元素作为参数执行callBack 方法,由 callBack 方法作为数据过滤网,最后返回过滤后的一个数组var result = 1,2,3,4,5.filter(function(e) retur
13、n e 3; ); alert(result); / 结果为 4,5 Array 对象的 map 方法:原型: Array.prototype.map(callBack: Function, thisObject: Object) 作用:迭代数组,每个元素作为参数执行callBack 方法,由 callBack 方法对每个元素进行处理,最后返回处理后的一个数组var result = 1,2,3,4,5.map(function(e) return e + px; ); alert(result); / 结果为 1px,2px,3px,4px,5px Array 对象的 every 方法:原型
14、: Array.prototype.every(callBack: Function, thisObject: Object) 作用:它的意思就是:是否数组中的每个元素都通过了callBack 的处理?如果是,则返回true, 如果有一个不是,则立马返回 false var result = 1,2,3,4,5.every(function(e) return e 3; ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - a
15、lert(result); / 返回 false Array 对象的 some 方法:原型: Array.prototype.some(callBack: Function, thisObject: Object) 作用:它的意思就是:是否数组中的有元素通过了callBack 的处理?如果有,则立马返回true, 如果一个都没有,则返回 false var result = 1,2,3,4,5.every(function(e) return e 3; ); alert(result); / 返回 true Array 对象的 indexOf 方法:原型: indexOf(searchElem
16、ent: Object, fromIndex: Number) 作用:在数组中查找是否含有指定对象,如果有,返回对象所在的索引,否则返回 -1;第二个参数是可选参数,如果指定的话,比如指定3,则表示从数组的第4 个元素开始查找;默认从第0 个元素开始查找。var x1 = 1,2,3,4,5.indexOf(2); / 结果为 1 var x2 = 1,2,3,4,5.indexOf(2,3); / 结果为 -1 -以下的方法是mootools 提供的 Array 的专有扩展,和JavaScript 标准无关 - each 作用:它的用法和作用与forEach 一模一样,参看上文的forEac
17、h copy 作用:复制数组元素到新的数组中;默认是全部复制,如果指定了开始索引和长度的话,则可以按指定形式复制var a = 1,2,3,4,5,6; var b1 = a.copy(); /1,2,3,4,5,6 var b2 = a.copy(2,2); /3,4 remove 作用:删除数组中指定值的元素var a = 1,2,2,3,4,5,6; var b = a.remove(4); /1,2,2,3,5,6 var c = a.remove(2); /1,3,4,5,6 test 作用:查找数组中是否有指定的值var a = 1,2,3,4,5,6; var b = a.tes
18、t(11); /fasle var c = a.test(2); /true extend 作用:把另一个数组追加到本数组后(不排除相同值的 ) var a = 1,2,3,4; var b = 1,11,12; a.extend(b); alert(a); /1,2,3,4,1,11,12 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - associate 作用:把另一个数组中的值作为key,本数组中的值做为值,组成一个键值
19、对象(长度为两者中较小的那个) var v = 1,2,3,4,5; var k = one,two,three; var kv = v.associate(k); alert(kvone); /1 var v = 1,2; var k = one,two,three; var kv = v.associate(k); alert(kvone); /1 alert(kvthree); /undefined $A 作用:和 Array 的 copy 方法是一样的作用var a = 1,2,3,4; var b = $A(a); /1,2,3,4 var c = $A(a,1,2); /2,3 $
20、each 作用:功能基本和Array 的 forEach 方法相同,官方文档上说可用于非常规数组的迭代,如由getElemntsByTagName调用产生的结果,以及参数数组arguments 等。不过管它常规不常规,用起来的形式还是一样的var a = 1,2,3,4; $each(a,function(e) alert(e); ); 恩, Array 部分终于看好了,自己写的语言表达上感觉有些地方有欠缺,呵呵。mootools【三】 - String篇String 大概是我们使用频率最高的数据类型了,在各个javascript框架中,都或多或少的对String 进行了扩展,来提供一些十分方
21、便的方法来处理日常应用。mootools 也不例外, String.js 中主要实现了这些对String 的扩展,还稍微带了点对 Array 和 Number 的扩展。-String.js- /=以下是对 String 的扩展 = test 作用:对字符串执行正则表达式匹配var x = Hello,world!.test(hello); /false var y = Hello,world!.test(hello,i); /true,i 是正则表达式参数,表示忽略大小写.注意 g在这里无效var z = Hello,world!.test(/H.*?o/); /true toInt 作用:把
22、字符串转换成整数,如果非数字,则返回NaN var x0 = 1.12.toInt(); /1 var x1 = 1.toInt(); /1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 29 页 - - - - - - - - - var x2 = 1px.toInt(); /1 var x3 = 10 xxx.toInt(); /10 var x3 = x10 xxx.toInt(); /NaN var x4 = 020.toInt(); /16 var x5 =
23、0 xFF.toInt(); /255 toFloat 作用:把字符串转换成浮点数var x0 = 1.12.toFloat(); /1.12 camelCase 作用:把以 - 分隔的字符串,如my-work ,转换成 myWork 这样的形式var x = my-work.camelCase(); /myWork var y = My-Work.camelCase(); /MyWork hyphenate 作用:把形如 myNotePad 形式的字符串,转换成my-note-pad这样的形式var x = myNotePad.hyphenate(); /my-note-pad capita
24、lize 作用:字符串中每个单词的首字母大写var x = hello world.capitalize(); /Hello World trim 作用:去除字符串首尾的所有空格var x = hello world .trim(); / “ hello word”clean 作用:去除字符串中所有多余空格(收尾全部去除,单词之间留一个空格) var x = hello world nn .clean(); / “ hello word”rgbToHex 和 hexToRgb 作用: rgb 代表的颜色代码与十六进制表示的颜色代码之间互转rgb(17,34,51).rgbToHex(); /#
25、112233 rgba(17,34,51,0).rgbToHex(); /transparent rgb(17,34,51).rgbToHex(true); /11,22,33 #112233.hexToRgb(); /rgb(17,34,51) #112233.hexToRgb(true); /17,34,51 /=以下是对 Array 的扩展 = rgbToHex 和 hexToRgb 作用:取数组中的前3 个元素,转化成RGB 颜色代码或十六进制颜色代码FF,0,0.hexToRgb(); /rgb(255,0,0) 255,255,0.rgbToHex(); /#ffff00 /=以下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年mootools中文教程 2022 mootools 中文 教程
限制150内