Egret类class和module写法区别
普通类
Test.ts
class Test { public name:string = "Test"; public run(){ console.log(this.name); } } var test:Test = new Test();
编译后的Test.js
var Test = (function () { function Test() { this.name = "Test"; } var d = __define,c=Test,p=c.prototype; p.run = function () { console.log(this.name); }; return Test; }()); egret.registerClass(Test,'Test');
Test2.ts
module Test2 { export class Test2{ public name: string = "Test2"; public run() { console.log(name); } } }var test2:Test2 = new Test2.Test2();
编译后的Test2.js
var Test2; (function (Test2_1) { var Test2 = (function () { function Test2() { this.name = "Test2"; } var d = __define,c=Test2,p=c.prototype; p.run = function () { console.log(name); }; return Test2; }()); Test2_1.Test2 = Test2; egret.registerClass(Test2,'Test2.Test2'); })(Test2 || (Test2 = {}));
静态类
Test.ts
class Test { public static name:string = "Test"; public static run(){ console.log(this.name); } }Test.run();
编译后的Test.js
var Test = (function () { function Test() { } var d = __define,c=Test,p=c.prototype; Test.run = function () { console.log(this.name); }; Test.name = "Test"; return Test; }()); egret.registerClass(Test,'Test');
Test2.ts
module Test2 { var name:string = "Test2"; export function run(){ console.log(name); } }Test2.run();
编译后的Test2.js
var Test2; (function (Test2) { var name = "Test2"; function run() { console.log(name); } Test2.run = run; })(Test2 || (Test2 = {}));
RegisterClass.ts
export function registerClass(classDefinition:any, className:string, interfaceNames?:string[]):void { if (DEBUG) { if (!classDefinition) { $error(, "classDefinition"); } if (!classDefinition.prototype) { $error(, "classDefinition") } ) { $error(, "className"); } } var prototype:any = classDefinition.prototype; prototype.__class__ = className; var types = [className]; if (interfaceNames) { types = types.concat(interfaceNames); } var superTypes = prototype.__types__; if (prototype.__types__) { var length = superTypes.length; ;i<length;i++){ var name = superTypes[i]; ){ types.push(name); } } } prototype.__types__ = types; }
Egret类class和module写法区别的更多相关文章
- CSS 属性 :before && :after的用法,伪类和伪元素的区别
一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...
- 详解 CSS 属性 - 伪类和伪元素的区别[转]
首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...
- 详解 CSS 属性 - 伪类和伪元素的区别(再也不用概念盲了!!!)
首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...
- 《转载》详解 CSS 属性 - 伪类和伪元素的区别
首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...
- CSS之 :before && :after的用法,伪类和伪元素的区别
一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...
- C++ 类对象和 指针的区别
C++ 类对象和 指针的区别 C++ 类对象和 指针的区别 转自:http://blog.csdn.net/ym19860303/article/details/8557746 指针的情况 class ...
- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...
- 类和ID选择器的区别
学习了类选择器和ID选择器,我们会发现他们之间有很多的相似处,是不是两者可以通用呢?我们不要着急先来总结一下他们的相同点和不同点: 相同点:可以应用于任何元素不同点: 1.ID选择器只能在文档中使用一 ...
- Java中String类两种实例化的区别(转)
原文:http://blog.csdn.net/wangdajiao/article/details/52087302 一.String类的第一种方式 1.直接赋值 例:String str = &q ...
随机推荐
- 【Spring boot】第一个项目 Springboot + mysql + hibernate
今天公司要做一个小项目,好久没碰项目了(刷题好累...),听说spring boot很火,决定试一试.暂时就从mysql里面读数据好了,使用hiberante. 1.获取jar包. 从http://s ...
- Windows下进程通信方式
当线程分属于不同进程,也就是分驻在不同的地址空间时,它们之间的通讯需要跨越地址空间的边界,便得采取一些与同一进程中不同线程间通讯不同的方法.在Windows程序中,各个进程之间常常需要交换数据,进行数 ...
- python中的map()函数
MapReduce的设计灵感来自于函数式编程,这里不打算提MapReduce,就拿python中的map()函数来学习一下. 文档中的介绍在这里: map(function, iterable, .. ...
- Linux 精确获取指定目录对应的块的剩余空间
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/statfs ...
- 实验五 ASP.NET状态管理和应用程序配置 总结
这次实验内容是对ASP.NET配置系统的了解和使用,还有就是对Application.Session.ViewState对象的应用.首先,我想说ASP.NET配置系统真的大大超乎我的想象,我以为会是上 ...
- 如何识别Java中的内存泄漏
Java开发人员都知道,Java利用垃圾回收机制来自动保持应用程序内存的干净和健康.然而可能有人不知道的是,即使使用了垃圾回收机制,Java中仍然可能存在内存泄漏风险.如果你碰到下面的错误代码: ja ...
- 【MySQL】MySQL 常用语法之锁表与解锁表
mysql 锁表语句: Lock锁整张表: 写锁定: LOCK TABLES products WRITE: 写锁,锁定之后,只有当前线程可以进行读操作和写操作,其他线程读操作和写操作均被堵塞.... ...
- e674. 创建并绘制加速图像
Images in accelerated memory are much faster to draw on the screen. This example demonstrates how to ...
- 那些有关求解next数组的算法
next数组的历史 有关字符串的模式匹配算法中,比较容易写出的是朴素的匹配算法也就是一种暴力求解方式,但是由于其时间复杂度为子串长度和主串长度的乘积,例如strlen(subStr) = n,strl ...
- iperf/netperf网络性能测试工具、Wireshark网络包分析工具
iperf http://www.linuxidc.com/Linux/2014-05/101160.htm netperf http://www.linuxidc.com/Linux/2013 ...