博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
移动开发之混合编程第一步:为JavaScript定义Class-based编程风格
阅读量:5807 次
发布时间:2019-06-18

本文共 1335 字,大约阅读时间需要 4 分钟。

hot3.png

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

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

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

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

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
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代码中使用原生类、类继承等更多特性请查看:

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

你可能感兴趣的文章
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
应用新安全组 - 每天5分钟玩转 OpenStack(116)
查看>>
4.3. 键盘设置
查看>>
iOS - UIViewController
查看>>
IntPtr 转 string
查看>>
一文搞懂各种 Docker 网络 - 每天5分钟玩转 Docker 容器技术(72)
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
CMake 手册详解(二十)
查看>>
嵌入式 busybox自带的tftp、telnet、ftp服务器
查看>>
USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
查看>>
struts1——静态ActionForm与动态ActionForm
查看>>
七大关键数据 移动安全迎来历史转折点
查看>>
在AngularJS中学习javascript的new function意义及this作用域的生成过程
查看>>