SlideShare a Scribd company logo
1 of 17
JS2 JS2 = JavaScript*JeffSu
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
使用 JS2 ,[object Object],[object Object],[object Object]
Javascript 的类定义 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Javascript 的类定义 ,[object Object],[object Object],[object Object],[object Object],[object Object]
JS2 类定义语法 class MyClass { var member1 = "member1”; function method1 () { alert("method1 called"); } }
JS2 的类继承 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Getters and Setters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
糅合( Mixins ) module Flyable { function fly () { alert('Flying!'); } } class Bird { include Flyable; } class Duck { include Flyable; }
静态方法 用于解决类似于唯一实例等问题 class Human { static function getCount () { return this.count; } static function create () { if (this.count) {  this.count++; } else { this.count = 1; } return new this(); } }
闭包 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
foreach 语法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HTML Cache //--- in uiBuilder.js2.haml UIBuilder button(name) %div.button= &quot;#name#&quot; //--- in uiBuilder.js2 class UIBuilder { function getButton (name) { this.htmlCache.button(name); } }  //-- in uiBuilder.js UIBuilder.prototype = { htmlCache: {&quot;button&quot;: function(name){return &quot;<div class='button'>&quot;+name+&quot;</div>&quot;}} };
更多特性 ,[object Object],[object Object],[object Object]
JS2 Wiki http://code.google.com/p/js2lang/
[object Object]

More Related Content

What's hot

Ecmascript
EcmascriptEcmascript
Ecmascriptjay li
 
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程Bobby Zhou
 
Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类yiditushe
 
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法crasysatan
 
Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环willchrisup
 
QML 與 C++ 的美麗邂逅
QML 與 C++ 的美麗邂逅QML 與 C++ 的美麗邂逅
QML 與 C++ 的美麗邂逅Jack Yang
 
JavaScript closures
JavaScript closuresJavaScript closures
JavaScript closuresHorky Chen
 
JavaScript Advanced Skill
JavaScript Advanced SkillJavaScript Advanced Skill
JavaScript Advanced Skillfirestoke
 
中心教员J2 Ee面试题
中心教员J2 Ee面试题中心教员J2 Ee面试题
中心教员J2 Ee面试题yiditushe
 
用Jquery实现拖拽层
用Jquery实现拖拽层用Jquery实现拖拽层
用Jquery实现拖拽层yiditushe
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验QLeelulu
 
Javascript share
Javascript shareJavascript share
Javascript shareXu Mac
 
Clean code_1_Nameing
Clean code_1_NameingClean code_1_Nameing
Clean code_1_NameingChiaChun Liu
 

What's hot (18)

Ecmascript
EcmascriptEcmascript
Ecmascript
 
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程
 
Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类
 
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法
 
Jasmine2
Jasmine2Jasmine2
Jasmine2
 
Javascript 闭包
Javascript 闭包Javascript 闭包
Javascript 闭包
 
Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环
 
A
AA
A
 
QML 與 C++ 的美麗邂逅
QML 與 C++ 的美麗邂逅QML 與 C++ 的美麗邂逅
QML 與 C++ 的美麗邂逅
 
JavaScript closures
JavaScript closuresJavaScript closures
JavaScript closures
 
JavaScript Advanced Skill
JavaScript Advanced SkillJavaScript Advanced Skill
JavaScript Advanced Skill
 
中心教员J2 Ee面试题
中心教员J2 Ee面试题中心教员J2 Ee面试题
中心教员J2 Ee面试题
 
Php & Mysql
Php & MysqlPhp & Mysql
Php & Mysql
 
用Jquery实现拖拽层
用Jquery实现拖拽层用Jquery实现拖拽层
用Jquery实现拖拽层
 
Node way
Node wayNode way
Node way
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
 
Javascript share
Javascript shareJavascript share
Javascript share
 
Clean code_1_Nameing
Clean code_1_NameingClean code_1_Nameing
Clean code_1_Nameing
 

Similar to JS2

Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非Tony Deng
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoloadjay li
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事Ben Lue
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型keelii
 
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句   oss 计算技术 - ossez info of tech107个常用javascript语句   oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of techYUCHENG HU
 
Kissy component model
Kissy component modelKissy component model
Kissy component modelyiming he
 
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1Sheng-Han Su
 
Java script closures
Java script closuresJava script closures
Java script closuresskywalker1114
 
Kissy模块化实践
Kissy模块化实践Kissy模块化实践
Kissy模块化实践yiming he
 
第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)9scss
 
J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架wtxidian
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Enginejay li
 
J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架fangdeng
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)ziggear
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.comThink hy
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训lotusprince
 
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术hoopchina
 

Similar to JS2 (20)

Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型
 
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句   oss 计算技术 - ossez info of tech107个常用javascript语句   oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of tech
 
Kissy component model
Kissy component modelKissy component model
Kissy component model
 
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1
 
Java script closures
Java script closuresJava script closures
Java script closures
 
Kissy模块化实践
Kissy模块化实践Kissy模块化实践
Kissy模块化实践
 
第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)
 
J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Engine
 
J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架
 
前端测试
前端测试前端测试
前端测试
 
Vue.js
Vue.jsVue.js
Vue.js
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.com
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
 
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
 

More from Jiang Wu

Python speed up with numba
Python speed up with numbaPython speed up with numba
Python speed up with numbaJiang Wu
 
Implement Web API with Swagger
Implement Web API with SwaggerImplement Web API with Swagger
Implement Web API with SwaggerJiang Wu
 
API documentation with Swagger UI(LT)
API documentation with Swagger UI(LT)API documentation with Swagger UI(LT)
API documentation with Swagger UI(LT)Jiang Wu
 
用Ruby编写博客应用
用Ruby编写博客应用用Ruby编写博客应用
用Ruby编写博客应用Jiang Wu
 
Sinatra and friends
Sinatra and friendsSinatra and friends
Sinatra and friendsJiang Wu
 
Rubyconf China
Rubyconf ChinaRubyconf China
Rubyconf ChinaJiang Wu
 
Ruby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequelRuby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequelJiang Wu
 

More from Jiang Wu (7)

Python speed up with numba
Python speed up with numbaPython speed up with numba
Python speed up with numba
 
Implement Web API with Swagger
Implement Web API with SwaggerImplement Web API with Swagger
Implement Web API with Swagger
 
API documentation with Swagger UI(LT)
API documentation with Swagger UI(LT)API documentation with Swagger UI(LT)
API documentation with Swagger UI(LT)
 
用Ruby编写博客应用
用Ruby编写博客应用用Ruby编写博客应用
用Ruby编写博客应用
 
Sinatra and friends
Sinatra and friendsSinatra and friends
Sinatra and friends
 
Rubyconf China
Rubyconf ChinaRubyconf China
Rubyconf China
 
Ruby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequelRuby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequel
 

JS2

  • 1. JS2 JS2 = JavaScript*JeffSu
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. JS2 类定义语法 class MyClass { var member1 = &quot;member1”; function method1 () { alert(&quot;method1 called&quot;); } }
  • 8.
  • 9.
  • 10. 糅合( Mixins ) module Flyable { function fly () { alert('Flying!'); } } class Bird { include Flyable; } class Duck { include Flyable; }
  • 11. 静态方法 用于解决类似于唯一实例等问题 class Human { static function getCount () { return this.count; } static function create () { if (this.count) { this.count++; } else { this.count = 1; } return new this(); } }
  • 12.
  • 13.
  • 14. HTML Cache //--- in uiBuilder.js2.haml UIBuilder button(name) %div.button= &quot;#name#&quot; //--- in uiBuilder.js2 class UIBuilder { function getButton (name) { this.htmlCache.button(name); } } //-- in uiBuilder.js UIBuilder.prototype = { htmlCache: {&quot;button&quot;: function(name){return &quot;<div class='button'>&quot;+name+&quot;</div>&quot;}} };
  • 15.
  • 17.