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:有一个输入参数,有一个输出
145 0
JAVA802_函数式接口的概述、Supplier供给型接口、consumer消费型接口、Predicate断定型接口、Function函数型接口(下)
|
JavaScript API C#
Darabonba 语言学习--Function
本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。
177 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] ) :这个函数的目的是创建委托。
|
13天前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
2月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新特性,与传统函数相比,它有更简洁的语法,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。箭头函数不适用于构造函数,不能使用new关键字调用。
|
2月前
|
数据可视化 开发者 索引
详解Wireshark LUA插件函数:function p_myproto.dissector(buffer, pinfo, tree)
在 Wireshark 中,LUA 插件通过 `function p_myproto.dissector(buffer, pinfo, tree)` 扩展协议解析能力,解析自定义应用层协议。参数 `buffer` 是 `PacketBuffer` 类型,表示原始数据包内容;`pinfo` 是 `ProtoInfo` 类型,包含数据包元信息(如 IP 地址、协议类型等);`tree` 是
79 1

热门文章

最新文章