移动开发之混合编程第一步:为JavaScript定义Class-based编程风格

JSAppSugar为JavaScript引入Class-Based编程风格,使开发者能沿用原有架构,用JavaScript开发特定功能模块,实现多端运行。适用于Java/Objective-C开发者,提供灵活的混合编程分层设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无论是Java,还是Objective-C,他们都是Class-based编程风格,而JavaScript采用的是Prototype-based编程风格。为了让JavaScript程序能够更好的融入原生程序,也让使用Java/Objective-C的开发者能够沿用原有程序的架构方式,那么就需要为JavaScript语言定义一种Class-based编程风格。

于是JSAppSugar便诞生了,JSAppSugar为JavaScript定义了一套Class-based编程风格,这样应用便可以沿用原有程序架构,只是将部分类从原生实现变为JavaScript实现,从而实现在不改变原有程序架构的前提下,为移动应用开发提供了一种可以实施的分层方式:将特定功能模块用JavaScript开发,实现可多端运行的程序模块。

这种灵活的混合编程分层设计,可以让架构设计更为自由和灵活的在执行效率(使用原生语言编写类实现)和开发效率(使用JavaScript编写类实现)之间做出平衡。

JSAppSugar定义的Class-based JavaScript编程风格的详细文档:JSAppSugar-类体系

JavaScript类定义例子:

$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-类体系

关注JSAppSugar了解更多

转载于:https://my.oschina.net/u/4018755/blog/2873848

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值