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 ...
随机推荐
- SQL计算表的列数
select count(syscolumns.name) from syscolumns , sysobjects where syscolumns.id = sysobjects.id and s ...
- 15天玩转redis(mark,redis学习系列)
转自:http://www.cnblogs.com/huangxincheng/p/4966258.html 双十一终于还是过去了,我负责的mongodb由于做了副本集,最终还是挺过去了,同事负责的r ...
- hadoop job解决大数据量关联时数据倾斜的一种办法
转自:http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2161929.html http://www.geminikwok.com/2011/04 ...
- USB2.0学习笔记连载(二):USB基础知识简介
USB接口分为USB A型.USB B型.USBmini型.USBmicro型.USB3.0其中每种都有相应的插座和插头. 图1 图2 上图是USBA型接口,图1为插座,图2为插头.插座指向下行方向, ...
- e668. 在一组像素中创建缓冲图像
This example demonstrates how to convert a byte array of pixel values that are indices to a color ta ...
- Zookeeper leader选举
让我们分析如何在ZooKeeper集合中选举leader节点.考虑一个集群中有N个节点.leader选举的过程如下: 所有节点创建具有相同路径 /app/leader_election/guid_ 的 ...
- 调用ffmpeg库编译时出现common.h:175:47: error: 'UINT64_C' was not declared in this scope
解决办法 出现错误:jni/ffmpeg/libavutil/common.h:175:47: error: 'UINT64_C' was not declared in this scope 解决: ...
- R语言低级绘图函数-axis
axis函数用来在一张图表上添加轴线,区别于传统的x轴和y轴,axis 允许在上,下,左, 右4个方向添加轴线 以x轴为例,一条轴线包含3个元素,水平的一条横线,叫做axis line , 刻度线, ...
- Ironic , Openstack Baremetal Hypervisor
Ironic , Openstack Baremetal Hypervisor,首发于UnitedStack Inc.. 转自: http://ju.outofmemory.cn/entry/4876 ...
- JavaSE(八)之Collection总结
前面几篇把集合中的知识大概都详细的说了一遍,但是我觉得还是要总结一下,这样的话,可以更好的理解集合. 一.Collection接口 首先我们要一张图来说明: Collection接口,它是集合的顶层接 ...