不管是Java,仍是Objective-C,他们都是Class-based编程风格,而JavaScript采用的是Prototype-based编程风格。为了让JavaScript程序可以更好的融入原生程序,也让使用Java/Objective-C的开发者可以沿用原有程序的架构方式,那么就须要为JavaScript语言定义一种Class-based编程风格。javascript
因而JSAppSugar便诞生了,JSAppSugar为JavaScript定义了一套Class-based编程风格,这样应用即可以沿用原有程序架构,只是将部分类从原生实现变为JavaScript实现,从而实如今不改变原有程序架构的前提下,为移动应用开发提供了一种能够实施的分层方式:将特定功能模块用JavaScript开发,实现可多端运行的程序模块。java
这种灵活的混合编程分层设计,能够让架构设计更为自由和灵活的在执行效率(使用原生语言编写类实现)和开发效率(使用JavaScript编写类实现)之间作出平衡。git
JSAppSugar定义的Class-based JavaScript编程风格的详细文档:JSAppSugar-类体系github
JavaScript类定义例子:objective-c
$class("my.sample.Person",{ name : "Unknown", #init : function(name){ if(name) this.name = name; }, eat : function(food){ return this.name + " is eating "+food; } });
在JavaScript代码使用:编程
var bob = new my.sample.Person("Bob"); var doing = bob.eat("Salad"); //函数将返回字符串 Bob is eating Salad
在iOS:Objective-C代码中使用:架构
//初始化JSAppSugar引擎 JSA4Cocoa* jsa = [[JSA4Cocoa alloc]init]; [jsa startEngine]; //使用糖方法建立类对象 id<JSAObject> bob = [jsa newClass:@"my.sample.Person" Arguments:@[@"Bob"]]; //使用糖方法调用对象方法 NSString* doing = [bob invokeMethod:@"eat" Arguments:@[@"Salad"]];
在Android:Java代码中的使用:函数
//初始化JSAppSugar引擎 JSA4Java jsa = new JSA4Java(); jsa.startEngine(); //使用糖方法建立类对象 JSAObject bob = jsa.newClass("my.sample.Person","bob"); //使用糖方法调用对象方法 String doing = (String)jsObject.invokeMethod("eat","Salad");
在JavaScript代码中使用原生类、类继承等更多特性请查看:JSAppSugar-类体系this
关注JSAppSugar了解更多架构设计