Ext是Extjs的命名空间,为Extjs框架提供唯一的全局变量

这样做可以避免冲突,便于代码维护

1,apply和applyif方法

apply=function(object, config, defaults)

:Copies all the properties of config to the specified object.

applyif=function(object, config)

:Copies all the properties of config to object if they don't already exist

(extend方法已经被丢弃,不做介绍)

2,typeof方法

Ext.typeof(v):v为要检查的变量

typeof的取值:

undefined,null,string,number,boolean,date,function,

object,array,regexp,element,textnode,whitspace

3,isEmpty:检测值是否为空

Ext.isEmpty(v,allowEmptyString):检测了4中为空的情况:null,undefined,空字符串和长度为0的array

v是要检查的值;

allowEmptyString默认是false,标示不能空字符串,反过来,空字符串也返回true

当返回true是标示值为空,false标示值不为空

4,isObject:检测是否是javascript的对象

Ext.isObject(v)

v是要检测的值,如果是javascript对象返回true,否则返回false

源码中的toString.call(value),extjs的扩展类的返回值是[object function],javascript返回值是[object object]

5,isIterable:检测是否可迭代的

Ext.IsIterable(v)

v是要检测的值,如果值的类型是迭代的,返回true,否则返回false

6,isFunction:检测值是否为函数

Ext.isFunction(v)

v是要检测的值,如果值的类型是函数,返回true,否则返回false

7,其他的检测方法

isArray 检测是否是数组

isDate 检测是否是日期

isPrimitive  检测是否是javascript数据类型

isNumber与IsNumberic

区别:isNumber检测的是数据类型,而IsNumberic  检测的是数值

如果值的数据类型是数字,并且不是无穷大,无穷小,isNumber返回true,否则为false

如果值是非数字,无穷大或无穷小,isNumberic返回false,否则返回true

其他基础方法

1,iterate

对数组或对象进行迭代

Ext.iterate(object,fn,scope)

object为要进行迭代操作的数组或对象、

fn是要迭代执行的函数

scope是作用域

2,Clone

可以克隆数组,对象,dom节点和日期数据,以避免bao保持旧的指向

Ext.clone(item)

item:要复制的数组,对象,Dom节点,或者日期

返回值:克隆后的数组,对象,Dom节点,或者日期

3,id

产生ID值

Ext.id(el,prefix)

el:可选参数,要增加的id元素,值可为元素Id值,HtmlElement对象或者Element对象;

prefix也是可选参数,是自定义的id前缀字符串,

如果el已经有id,直接返回id的值,如果没有返回生成的id值

4,getBody

返回当前document对象的body元素

Ext.getBody()

要注意返回值是一个Element对象

5,getHead

返回document的Head元素

Ext.getHead()

要注意返回值是一个Element对象

6,getDoc

返回document对象

Ext.getDoc()

要注意返回值是一个Element对象

7Destroy

删除对象及其事件,从dom中删除节点,如果存在destroy方法,执行它

Ext.destroy(obj1,obj2,obj4.....objn)

objn大于等于1,该方法没有返回值

8.urlAppend

为url追加查询字符串

Ext.urlAppend(url,s)

其中url是要增加查询字符串的地址,s是要增加的查询字符串,方法最后返回增加了查询字符串后的url、

直接调用的是Ext.String.urlAppend方法生成字符串

9.addBehaviors

若document对象已经准备好,则可为匹配选择符的元素绑定事件

Ext.addBehaviors(0)

o为对象,其格式如下

{

'S@eventName':fn

}

s是选择符;eventname是事件名称,如click,dbclick,fn是要绑定的函数

没有返回值

10.getScrollBarWidth

获取滚动条宽度

Ext.getScrollBarWidth([force])

force作用是强制重新计算滚动条宽度

返回滚动条宽度

11,destroyMembers

删除对象成员

Ext.destroyMembers(0,name1,name2,name3....namen)

o是要删除其成员的对象,namen中n大于等于1,是要删除的成员的关键字

没有返回值

12,copyTo

从一个对象复制属性名到另一个对象。

Ext.copyTo(dest,source,names[,useprototypekeys])

其中,dest是要复制的目标对象

source是要复制的源对象

name是要复制的关键字,可为数组和字符串

usePrototypekeys是布尔值的可选参数,当设置true时,无论源对象是否存在关键字都进行复制,其默认值为false,也就是说只有源对象存在关键字时才进行复制;

改方法返回复制后的目标对象

13其他方法

Ext.urlEncode:对url进行编码,extjs 4中不推荐使用,建议用Ext.Object对象的toQueryString方法代替

Ext.urlDecode:对url进行解码,extjs 4中不推荐使用建议使用Ext.Object对象的fromQueryString 方法代替

平台检测工具

Ext.is 检测当前应用运行的环境。这个很重要

主要有一下13个属性

Android,Blackberry,Desktop,Linux,Mac,Phone,Standalone,Tablet,windows,ios,ipad,iphone,ipod

Ext.is是一个对象,init方法为其初始化方法

Ext.is在platforms属性中使用数组形式包含了检测各种平台的正则表达式,检测用的属性名称和标记符号,这样做非常有利于扩展

当前运行环境检测工具

Ext.supports 在框架中如果使用html5和css3的功能,就必须先检测浏览器是否支持,不支持的话就得用其他方法实现,这样既可充分发挥浏览器的性能,也能向下兼容。最大的问题再于,是在每次使用新功能的时候都检测一遍,还是先检测好,并保存到一个变量或者对象属性中,然后根据该变量或者对象属性进行检测呢?肯定是最后一种方式好,因为这样避免多次运行不必要的检测过程,提高运行效率

Extjs的静态方法

Extjs提供了Ext.Date,Ext.Number,Ext.String,Ext.Error,Ext.Object,Ext.Function和Ext.Array 7个对象

Ext.Object中的静态方法

toQueryObjects

将对象转换为数组

Ext.Object.toQueryObjects(name,object[,recursive])

name是字符串,数组中子对象的关键字

object是要转换的对象,数组,字符串或者其他数据,recursive是可选参数,决定是否执行地柜,默认false,不执行递归,否则为ture,执行递归,

此方法返回转换后的数组

2,toQueryString

将对象转换为编码的查询字符串

Ext.Object.toQueryString(object[,recusive]);

Object是要转换的对象

recursive是可选参数,决定是否使用递归,默认是false,不使用递归

3,fromQueryString

将查询字符串编码转换对象

Ext.Object.fromQuryString(string[,recursive])

string是要转换的字符串

recursive是可选参数,决定是否递归,默认false

此方法返回转换后的对象

4,Each

枚举对象的回调函数

Ext.Object.each(object,fn[,scope]);

object是要枚举的对象

fn是枚举操作要执行的回调函数,每一次枚举会依次提供关键字,值和对象本身这3个参数,

回调函数中返回false可终止回调函数

scope是可选参数,为函数运行的作用域

没有返回值

5.Merge

以递归方式合并任何数量的对象,而且取消对他们的指定

Ext.Object.merge(source[,obj1,obj2,obj3....obj4])

source是要合并的源对象 objn中n大于等于1是要合并的对象

返回合并后的对象

6,Ext.Object中其他方法

chain,根据指定的对象创建一个新对象作为原型链

getValues:获取对象内所有的值,以数组形式返回

getKey:在兑现内根据指定的值返回其关键字

getKeys:获取对象所有关键字,以数组的形式返回

getSize:返回对象的关键字的数量

Ext.Function中的静态方法

1,flexSetter

封装一个只接受两个参数的函数,封装后,函数的参数会变得灵活

Ext.Function.flexSetter(fn)

fn是要封装的函数,该方法返回封装后的函数

2,Bind

绑定函数的方法,主要作用是保持作用域

Ext.Function.bind(fn[,scope,args,appargs])

fn是要绑定的函数,

scope是可选参数,是函数运行的作用域,如果没有指定默认是windows对象

args是可选参数,是调用时重写参数的参数数组,而不是重写原有参数

该方法返回绑定后的函数

3,pass

封装一个新函数,在调用旧函数时,将预设的参数插入到新函数的参数前面做为旧函数的参数

Ext.Function.pass(fn,args[,scope])

fn是要封装的函数

args是数组,为预设的参数,

scope是可选参数,为函数的作用于

返回封装好的函数

4,alias

为方法创建一个别名

Ext.Function.alias(object,methodName)

object是要创建别名的对象;

methodname是字符串,为创建别名的方法名称;

改方法返回要创建别名的函数

5,createInterceptor

创建一个拦截函数,其作用是在调用原始函数时,先使用拦截函数检测数据

如果拦截函数返回false,不调用原始函数,直接返回参数return value或null。否则,执行原始函数

该功能主要用于验证输入,验证通过后才修改原始值

Ext.Function.createInterceptor(origFn,newFn[,scope,returnValue])

origFn是原始函数

newFn是拦截函数;

scope是可选参数,函数的作用域

return value是可选参数,是拦截函数返回false时的返回值,可以是任意数据类型,如果没有设置,则返回null,该方法返回新建的函数

如果拦截函数不是函数,直接返回原始函数

在返回函数的内部,如果拦截返回的不是false,则执行原始函数,否则返回returnvalue,或者null

6,createDelayed

创建一个延时执行的回调函数

Ext.Function.createDelayed(fn,delay[,scope,args,appends])

fn是回调函数

delay是延迟的时间,单位是微妙

scope是作用域,没有指定则为windows对象

args为调用时重写参数的参数数组。

appedargs是布尔型或者数字,true则将args追加到原有参数,而不是重写原有参数,如果是数字,则在原有参数由该指定的位置插入args参数

返回新建的函数

7Defer

在指定时间后执行函数

Ext.Function.defer(fn,delay[,scope,args,appends])

fn是回调函数

delay是延迟的时间其单位是微妙

scope函数作用域

args调用时重写参数的参数数组

appedargs是布尔型或者数字,true则将args追加到原有参数,而不是重写原有参数,如果是数字,则在原有参数由该指定的位置插入args参数

8,createSequence

创建一个函数,在执行原始函数之后,执行指定的函数

Ext.Function.createSequnce(orignFn,newFn[,scope])

orignFn要执行的原始函数

newFn是在原始函数执行后在执行的函数

scope是可选参数,为函数的作用域

9,createBuffered

创建一个缓冲函数,在指定的时间内,如果函数再次被触发则重新开始计时。只有在缓存期内没有再被触发时,才会执行指定的函数,该方法主要用于定义键盘事件,例如在缓冲期内,用户再没有输入任何字符,则可以做一些处理,如果数据库搜索数据,在下拉列表中显示

Ext.Function.createBuffered(fn,buffer,scope,args)

fn是缓冲事件过后要执行的函数

buffer是缓冲事件,其单位是微秒

scope函数作用域,没有指定时为window对象

args是可选参数是调用时重写参数的参数数组;改方法返回新建的函数

返回新建的函数

10createThrottled

封装那些会被多次且迅速调用的函数,如鼠标移动事件,只有在局里上次调用时间达到指定间隔后才执行操作

Ext.Function.createThrottled(fn,interval[,scope])

fn是缓冲时间过后要执行的函数

interval是指定的时间间隔,单位是微秒

scope作用域,没有指定时默认为window

返回新建的函数

11Clone

为指定的函数创建一个克隆函数

Ext.Function.clone(fn)

fn是要克隆的函数

代码只是返回一个匿名的函数,而匿名函数内会执行指定的函数

12interceptBefore

在函数的原始操作之前执行一个指定的操作,

Ext.Function.interceptBefore(Object,methodName,fn[,scope])

object为目标对象

methodName为要重写的方法

fn是新的操作

scope是可选参数

返回新建的函数

13.interceptAfter

在函数的原始操作之后执行一个指定的操作

Ext.Function.InterceptAfter(object,methodName,fn[,scope])

object为目标对象,methodname为要重写的方法,fn为新的操作

scope函数作用域

返回新建的函数

Ext.Array中的静态方法

each

Ext.Array.each(array,fn[,scope,reverse])

arry为要枚举的数组,fn是枚举每一项时要执行的函数,函数可接受item,index,items

scope是作用域范围

reverse,如果为true则从最后一个枚举值开始枚举

如果循环执行完毕,没有中断,则返回true

2,foreach

遍历一个数组,并使用指定函数处理数组的每一个元素

Ext.Array.forEach(array,fn[,scope])

array是要遍历的数组

fn是处理函数,函数一次可接受item,index,items,item是枚举数组元素,index为数组索引,items是数组本身

scope是作用域

该函数没有返回值

3.toArray

将可迭代的数据转换为数组

Ext.Array.toArray(iterable[,start,end])

iterable的数据类型是任何可迭代的数据,标示将要转换的数组的数据

start为数字值,标示转换的开始位置

end为数字值,标示转换的结束位置;

该方法返回转换后的数组

4,pluck

根据指定的属性,获取数组内每一个对象指定关键字的值

Ext.Array.pluck(array,name)

array是获取数据的数组

name是字符串,为指定的关键字

该方法返回由指定关键字的值组成的数组

5,from

将一个值转换为数组

Ext.Array.from(value[,newReference])

value是要转换为数组的值;

newReference是可选参数决定使用数组的元素是否使用新的指向,默认为false,不使用新指向,否则克隆数组,使用新指向

6,sort

对数组中的元素进行排序,如果要对包含中文字符的数组进行排序,一定要定义自定义排序函数,否则会出错

Ext.Array.sort(array[,fn])

其中array是要排序的数组

fn自定义排序函数

var ar=["张三","李四","王五","刘六"]

Ext.Array.sort(ar,function(a,b){

if(typeof a==="string")

   return a.localeCompare(b);

else

  return a<b

})

这里对字符串使用了localeCompare方法进行比较大小,而不是直接比较大小

7,Ext.Array中其他的方法

indexOf:查询元素在数组中的位置,如果找不到元素,返回-1

contains:检测数组是否包含指定元素

map:与forEach方法有点类似,不通的是map方法会吧处理结果以数组的形式返回

every:与each方法类似,使用回调函数处理数组的每一个元素,如果回调函数返回false,中断执行并返回false,否则返回true

some:与every方法正好相反,回调函数返回true,中断执行并返回true,否则返回false

clean:清理数组中的空值

unique:清理数组中的重复项

filter:使用过滤函数验证函数中的每一个元素,如果函数返回true该元素保留否则已出元素,最后返回过滤后的数组

remove:从数组中删除一个元素

include:如果数组不包含指定元素,将该元素加入到数组

clone:克隆数组,会使用新的指向

merge:合并数组,并去除重复项

intersect:将存在于所有数组的项组合成一个新数组

difference:将数组B中不存在于数组A的项一次插入到数组A中

flatten:使用递归方式将多维数组转换为一维数组

min:返回数组元素中的最小值,和sort类似,如果包含中文必须制定排序函数

max:返回数组中的最大值

mean:计算数组中所有项的平均值。

Sum:计算数组中所有项的和。、

Ext.Error中的静态方法

ignore:布尔值,默认为false,显示错误报告,如果true,不显示错误报表,

notify:作用和ignore相同,区别在于它不会影响异常的抛出

Ext.Error主要的静态方法是raise,用于抛出错误信息,方法handle的作用是实现自定义错误处理

Extjs4中使用Ext.define创建类,定义在ClassManager.js中

Ext.define(className,data,createfn)

创建类的类Ext.Class

Ext.class(class,data,oncreated)

class要创建的类

data配置对象

oncreated:类创建完成的回调函数

所有继承类的积累:Ext.Base

实现动态加载的:Ext.loader

管理类的类:Ext.ClassManager

Extjs学习笔记--(四,基本函数介绍)的更多相关文章

  1. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  2. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  3. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  4. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  5. 零拷贝详解 Java NIO学习笔记四(零拷贝详解)

    转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...

  6. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  7. HTML+CSS学习笔记(1) - Html介绍

    HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...

  8. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  9. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  10. Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

随机推荐

  1. 【JavaFx】客户端服务器C/S架构搭建

    客户端获取服务器端软件更新版本方法: package com.platform.ui.update; import java.io.BufferedInputStream; import java.i ...

  2. weblogic连接池问题总结(转载)

    转自:某局Weblogic 连接池问题(现场报告)(Connection has been administratively disabled. Try later.) 目录 1. 概述 3 1.1 ...

  3. 使用matplot做图--sin图像

    # _*_ coding:utf-8 _*_ import numpy as np import matplotlib.pyplot as plt x = np.arange(-5, 5, 0.1) ...

  4. ServiceMetadataBehavior 的 HttpsGetEnabled 属性设置为 True,而 HttpsGetUrl 属性是相对地址,但没有 https 基址

    WCF 发布,本机正常,服务器报错,信息如下: ServiceMetadataBehavior 的 HttpsGetEnabled 属性设置为 True,而 HttpsGetUrl 属性是相对地址,但 ...

  5. golang第三方日志包seelog配置文件详解

    开发任何项目,都离不开日志,配好自己的项目日志输出,往往是开发项目的前提.在golang中,seelog应该是比较有名的日志处理包了,功能非常强大,seelog官方文档 一.seelog主要功能下面我 ...

  6. matlab 等值线函数 contour

    matlab 等值线函数 contour contour是等高线绘制函数我并没怎么用过这个函数,只是参照help将上面的英文翻译一下,如果有错误,请大家提出来.contour(Z)根据矩阵Z画出等高线 ...

  7. Jquery实现仿腾讯微薄的广播发表

    前言: 由于这几天在学习Jquery的一些知识,比以前的感觉就是Jquery太强大了,很多很简单的功能以前在JavaScript要写几十行的代码而在Jquery中只用几行代码就搞定了,所以我决定好好学 ...

  8. 关于Unity中使用刚体制作简单跑酷案例

    一.步骤 1.创建一个Canvas 2.对Canvas进行初始化,记得把Game视图的分辨率调成和Canvas里面设置的一样的分辨率960X640 3.创建一个Image的UI节点作为Canvas的子 ...

  9. Java的四种引用类型之弱引用

    先说结论: 首先,Java中有四种引用类型:强引用.软引用.弱引用.虚引用.-- 在 Java 1.2 中添加的,见 package java.lang.ref; . 其次,这几个概念是与垃圾回收有关 ...

  10. Understanding the difficulty of training deep feedforward neural networks

    本文作者为:Xavier Glorot与Yoshua Bengio. 本文干了点什么呢? 第一步:探索了不同的激活函数对网络的影响(包括:sigmoid函数,双曲正切函数和softsign y = x ...