ExtJs 的 JS基本语法

本篇主要介绍一下ExtJs对JS基本语法的扩展支持,包括动态加载、类的封装等。

一、动态引用加载

ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可以引入动态加载的概念来即用即取。这些代码都要写在Ext.onReady外面。

1.动态引用外部Js

[Js]


1

2

3

4

//加载配置可用

Ext.Loader.setConfig({ enabled: true });

//动态引用“../ux/”目录下所有Js文件类,映射到对应命名空间

Ext.Loader.setPath(‘Ext.ux‘‘../ux/‘);

2.动态加载类

[Js]


1

2

3

4

5

6

7

8

9

10

11

12

13

//加载单个类

Ext.require(‘Ext.window.Window‘);

//加载多个

Ext.require([

    ‘Ext.grid.*‘,

    ‘Ext.data.*‘,

    ‘Ext.util.*‘,

    ‘Ext.grid.PagingScroller‘

]);

//加载所有类,除了“Ext.data.*”之外

Ext.exclude(‘Ext.data.*‘).require(‘*‘);

二、对类的封装

Js本身是面向对象的语言,但是语法层面上对类的支持不够完善,ExtJs对此作了一系列的封装,下面看看类的定义、字段、构造函数、方法、静态字段,方法的实现方式,还用类的继承的用法。

[Js]


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

Ext.onReady(function () {

    Ext.define("My.test.Animal", {

        height: 0,

        weight: 0

    });

    Ext.define("My.test.Person", {

        //普通子段

        name: "",

        //属性

        config: {

            age: 0,

            father: {

                name: "",

                age: 0

            }

        },

        //构造方法

        constructor: function (name, height) {

            this.self.count++;

            if (name) this.name = name;

            if (height) this.height = height;

        },

        //继承

        extend: "My.test.Animal",

        //实例方法

        Say: function () {

            alert("你好,我是:" this.name + ",我今年" this.age + "岁,我的身高是:" this.height

          + "。我的爸爸是:" this.father.name + ",他" this.father.age + "岁。");

        },

        //静态子段,方法

        statics: {

            type: "高等动物",

            count: 0,

            getCount: function () {

                return "当前共有" this.count + "人";

            }

        }

    });

    function test() {

        var p = Ext.create("My.test.Person""李四", 178);

        p.setAge(21);

        p.setFather({

            age: 48,

            name: "李五"

        });

        p.Say();

        Ext.create("My.test.Person");

        alert(My.test.Person.getCount());

    }

    test();

});

三、基本数据类型

ExtJs支持数值型、字符串型、日期型、布尔型等基本数据类型,内容比较简单,下面演示基本的声明用法,以及类型转换。

[Js]


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//定义一个日期类型的数据

var date1 = new Date("2011-11-12");

var date = new Date(2011, 11, 12, 12, 1, 12);

//转化为字符串型

alert(date.toLocaleDateString());

//转化为数值型

alert(Number(date));

//布尔型,假

var myFalse = new Boolean(false);

//真

var myBool = new Boolean(true);

//定义数值

var num = new Number(45.6);

alert(num);

四、函数执行时间控制

主要用两个方面,1.让某个函数等待一段时间后自动执行。2.然某个函数按照一定频率反复执行。

1.函数等待执行

实现一个功能,页面加载完毕后,等待3秒后弹出提示。

[Js]


1

2

3

4

5

var func1 = function (name1, name2) {

    Ext.Msg.alert("3秒钟后自动执行""你好," + name1 + "、" + name2 + "!");

};

Ext.defer(func1, 3000, this, ["张三""李四"]);

1.函数按照一定频率反复执行

让div1每隔一秒更新一次显示当前时间,10秒又自动停止更新:

[Js]


1

2

3

4

5

6

7

8

9

10

11

//周期执行

var i = 0;

var task = {

    run: function () {

        Ext.fly(‘div1‘).update(new Date().toLocaleTimeString());

        if (i > 10) Ext.TaskManager.stop(task);

        i++;

    },

    interval: 1000

}

Ext.TaskManager.start(task);

五、键盘事件侦听

1..Ext.KeyMap

通过Ext.KeyMap可以建立键盘和用户动作(Actions)之间的映射。下面看看例子,页面html沿用Ext.Updater部分。

[Js]


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

    var f = function () {

        alert("B被按下");

    }

    var map = new Ext.KeyMap(Ext.getDoc(), [

    {

        key: Ext.EventObject.B,

        fn: f

    }, {

        key: "bc",

        fn: function () { alert(‘b,c其中一个被按下‘); }

    },

    {

        key: "x",

        ctrl: true,

        shift: true,

        alt: true,

        fn: function () { alert(‘Control + shift +alt+ x组合键被按下.‘); },

        stopEvent: true

    }, {

        key: "a",

        ctrl: true,

        fn: function () { alert(‘Control+A全选事件被阻止,自定义事件执行!‘); },

        stopEvent: true

    }

]);

我们看到,在IE中测试,当我们按下ctrl+A键时,全选功能被屏蔽,支持了我们自定义的方法。

2.Ext.KeyNav

Ext.KeyNav主要是用来绑定方向键的,已支持的键:enter, left, right, up, down, tab, esc, pageUp, pageDown, del, home, end,现在通过它来实现鼠标控制层移动的功能:

[Js]


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

var div1 = Ext.get("div1");

var nav = new Ext.KeyNav(Ext.getDoc(), {

    "left"function (e) {

        div1.setXY([div1.getX() - 1, div1.getY()]);

    },

    "right"function (e) {

        div1.setXY([div1.getX() + 1, div1.getY()]);

    },

    "up"function (e) {

        div1.move("up",1);

    },

    "down"function (e) {

        div1.moveTo(div1.getX(), div1.getY() + 1);

    },

    "enter"function (e) {

    }

});

时间: 2024-08-07 23:28:04

ExtJs 的 JS基本语法的相关文章

JS基础语法

JS基础语法第二天 1.If语法if的语法:If(判断条件){ 一般是一个boolean类型的值或是关系表达式或是逻辑表达式要执行的代码;} If(判断条件){ 一般是boolean类型的值或是关系表达式或是逻辑表达式要执行的代码;}else {要执行的代码;} If(判断条件){ 一般是boolean类型的值或是关系表达式或是逻辑表达式要执行的代码;}else if(判断条件) {要执行的代码;} 2.三元运算符表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;如果表达式1成立,也就

js基本语法汇总

注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/6783296.html ) 作者:wangwen896 整理 1.分类 ECMAScript js基本语法与标准 DOM Document Object Model文档对象模型 BOM Browser Object Model浏览器对象模型 tips:DOM和BOM都是一套API(Application programing interface) 2.注释方式 style /* */ body <!-

Vue.js模板语法

Vue.js模板语法 Vue 实例 构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例来启动的: var vm = new Vue({ // 选项 }) 属性与方法 每个 Vue 实例都会代理其 data 对象里所有的属性: var data = { a: 1 } var vm = new Vue({ data: data }) vm.a === data.a // -> true // 设置属性也会影响到原始数据 vm.a = 2 data.a // ->

js正则表达式语法 修正

js正则表达式语法 转义字符是\,而不是/,故本文中正则表达式需要转义的地方,都需要用\替换掉原来的/. 1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于2,结束于

JavaScript进阶 - 第2章 你要懂的规则(JS基础语法)

第2章 你要懂的规则(JS基础语法) 2-1什么是变量 什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可以是衣服.玩具.水果...等. 2-2 给变量取个名字(变量命名) 我们为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字(也就是变量的名字). 我们赶快给变量取个好名字吧!变量名字可以任意取,只不过取名字要遵循一些规则: 1.必须以字母.下划线或美元符号开头,后面可

1.js基础语法

1.Js基础语法 1.数据类型 JavaScript不区分整数和浮点数,统一用Number表示 NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity 2.比较运算符 要特别注意相等运算符==.JavaScript在设计时,有两种比较运算符: 第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果: 第二

js基本语法总结(一)

1.js简介 a)js是一种网页脚本语言,使得浏览器可以与网页互动. js的一种基于对象和事件驱动,具有安全性能的脚本语言,脚本语言就是在客户端的浏览器就可以互动响应处理程序的语言,而不需要服务器的处理和响应. js也可以与服务器交互响应,而服务器语言(asp.php.jsp)需要将命令上传服务器,经服务器处理后回传处理结果. js可以嵌入到html文件,不需要经过web服务器就可以对用户操作作出响应,使得网页与用户很好的交互,利用客户端电脑的资源适当减少服务器端的压力,并减少用户的等待时间.

js正则表达式语法

转载自http://blog.csdn.net/zaifendou/article/details/5746988 1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于

JS基本语法

## jave script基础语法 ## 1.内嵌式 <script> //引入标签 文档输出:1.弹出对话框 alert("内容"); 2.document.write("内容"); </script>/2.外部链接 <script type = "text/javescript" src"地址"></script> 在Js文件里面引用(注意:在JS文件里"中文&q