Ext 4 概述(三)之Env命名空间 & 语言增强包 & Ext.Function

简介: Env命名空间 提供浏览器和操作系统的相关信息,还有告诉我们现代浏览器提供了什么功能。 Ext.env.Browser 该类提供了全部浏览器的元信息(名称、引擎、版本、是否 Strict 模式等等。

Env命名空间

提供浏览器和操作系统的相关信息,还有告诉我们现代浏览器提供了什么功能。

Ext.env.Browser

该类提供了全部浏览器的元信息(名称、引擎、版本、是否 Strict 模式等等。

Ext.env.FeatureDetector

这是一个在 Ex JS 3 中没有类,完全新的功能,其功能在于检测浏览器特性如何,主要针对现代 HTML5 和 CSS3 的特性,包括移动平台在内的特性列表,有:

  • CSS 变形、动画、转换
  • Canvas、SVG、VML
  • 触控能力、方向
  • 导航 Geolocation
  • SqlDatabase
  • Websockets
  • History
  • Audio
  • Video

Ext.env.OS

提供当前主机操作系统的信息(包括移动 OS 的列表)。

语言包(Lang Package)

同样的功能在Ext中都会有,但这是一个新的包,之所以定义为一个新的包,是为了尽量不会影响到 JavaScript 的对象原型。尽管在对象原型中设置方法会比较方便,但是如果引入了其他 JavaScript 一起,很难说会不会构成冲突或者影响的说。再者,如果日后 ECMAScript 规范作出了修订,会不会与 Ext JS 所定义的构成重叠呢?所以,要解决以上顾虑,我们还是把语言方法的命名空间定义在 Ext 对象之下,避免在对象原型身上定义的成员。

实际上虽然没有分配一个“lang”的这么一个命名空间,但是还是在源码树(Source Tree)中划分了一份文件专门定义语言增强函数。前后变化如下:

  • Array → Ext.Array
  • Date → Ext.Date
  • Function → Ext.Function
  • Number → Ext.Number
  • Object → Ext.Object
  • String → Ext.String

请注意在兼容化文件中,仍会对核心对象的原型挂载方法之引用。重申一下,要真正升级到 Ext JS 4并摆脱 Ext JS 3 旧的调用方式,就必须移除兼容化文件,最后升级到新的命名空间形式。

Ext.Function

Ext JS 4 的函数原型 Function prototype 改变后,怎么调用?最主要的一点就是命名上发生变化,如 Function.createDelegate() 和 Function.createCallback() 分别重命名为 Ext.Function.bind() 和 Ext.Function();Function.defer() 变化为 Ext.Function.defer()。由于使用频率较高,我们在 Ext 对象上添加了快捷访问方式,便是 Ext.bind()、Ext.pass() 和 Ext.defer();其余的函数方法像 createSequence() 和 createInterceptor() 就取消了,但引入新方法 createBuffered() 和 createThrottled(),可以看看有什么用途。

如下是一些语法糖说明前后之变化:

// Ext 3: myFunction.createDelegate(this, [arg1, arg2]); myFunction.defer(1000, this); // Ext 4: Ext.bind(myFunction, this, [arg1, arg2]; Ext.defer(myFunction, 1000, this);

目录
相关文章
JAVA802_函数式接口的概述、Supplier供给型接口、consumer消费型接口、Predicate断定型接口、Function函数型接口(下)
③. consumer 只有输入,没有返回值 ④. Predicate有一个输入参数,返回boolean ⑤. Function:有一个输入参数,有一个输出
238 0
JAVA802_函数式接口的概述、Supplier供给型接口、consumer消费型接口、Predicate断定型接口、Function函数型接口(下)
|
JavaScript API C#
Darabonba 语言学习--Function
本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。
264 0
EXT核心API详解(二)-Array/Date/Function/Number/String
Array类indexOf( Object o ) : Numberobject是否在数组中,找不到返回-1;找到返回位置remove( Object o ) : Array从数组中删除指定的对象object,如果找不到object则数组无变化Number类constrain( Number min...
Ext核心代码分析之Function.createDelegate
前一段一直在用Ext,可是在扩展的时候总是遇到问题,索性看Ext的源码,但是发现有很多createDelegate这个方法、一直不解,最近经高人点播,了解一二。 所属类:Function createDelegate( [Object obj], [Array args], [Boolean/Number appendArgs] ) :这个函数的目的是创建委托。
1035 0
|
人工智能 Python
083_类_对象_成员方法_method_函数_function_isinstance
本内容主要讲解Python中的数据类型与面向对象基础。回顾了变量类型(如字符串`str`和整型`int`)及其相互转换,探讨了加法在不同类型中的表现。通过超市商品分类比喻,引出“类型”概念,并深入解析类(class)与对象(object)的关系,例如具体橘子是橘子类的实例。还介绍了`isinstance`函数判断类型、`type`与`help`探索类型属性,以及`str`和`int`的不同方法。最终总结类是抽象类型,对象是其实例,不同类型的对象有独特运算和方法,为后续学习埋下伏笔。
258 8
083_类_对象_成员方法_method_函数_function_isinstance
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
311 17

热门文章

最新文章