【技术实现步骤摘要】
本申请涉及计算机应用
,尤其涉及一种JavaScript代码转译方法及装置。
技术介绍
JavaScript一种直译式脚本语言,目前已经被广泛用于Web应用开发,常用来为网页添加各种动态功能,为用户提供更流畅美观的浏览效果。ECMAScript是ECMA(EuropeanComputerManufacturersAssociation,欧洲计算机制造商协会)制订的一种开放的JavaScript语言规范,自ECMAScript3.0版本在1999年发布后,已经成为JavaScript的国际通用标准。目前主流的版本是在2011年发布的ECMAScript5.1版本(下文简称为ES5),而ECMAScript的第六个版本(下文简称ES6)也已经在2015年6月17日正式发布。ES6在ES5的基础上做了重大改进,ES6增添了许多新特性,例如对类(class)的支持、对模块(module)的支持等等,许多开发人员已经开始尝试使用ES6来进行应用的开发。然而,对于热衷于使用语言最新特性的开发人员而言,需要面对一个实际的情况是:截止到发布日期,无论是浏览器环境还是服务器环境,都还没有一款完全支持ES6的JavaScript代理,因此目前对于使用ES6规范开发的应用,需要使用转译器(Transpiler)将ES6代码转译为ES5代码,以便所开发的应用能够在现有的Web环境中正常使用,转译器的工作原理示意图如图1所示。Babel和Traceur是开发人员目前常用的两种转译器,两者均可以实现ES6代码到ES5代码的转译功能,但是转译的结果只能兼容到较新的浏览器版本,< ...
【技术保护点】
一种JavaScript代码转译方法,其特征在于,该方法包括:对待转译的ES6代码段进行解析,根据解析结果,确定所述待转译代码段中的get/set方法声明代码部分,所述get/set方法包括:get方法或set方法;将所述get/set方法所属类的class声明代码转译为function声明代码;将所述get/set方法的声明代码转译为用于执行以下操作的功能代码:创建一DOM对象;将“this”关键字所指向对象的属性复制到所述DOM对象上;利用ES5的对象属性定义方法,将所述get/set方法定义到所述DOM对象上;以所述DOM对象作为返回值。
【技术特征摘要】
1.一种JavaScript代码转译方法,其特征在于,该方法包括:对待转译的ES6代码段进行解析,根据解析结果,确定所述待转译代码段中的get/set方法声明代码部分,所述get/set方法包括:get方法或set方法;将所述get/set方法所属类的class声明代码转译为function声明代码;将所述get/set方法的声明代码转译为用于执行以下操作的功能代码:创建一DOM对象;将“this”关键字所指向对象的属性复制到所述DOM对象上;利用ES5的对象属性定义方法,将所述get/set方法定义到所述DOM对象上;以所述DOM对象作为返回值。2.根据权利要求1所述的方法,其特征在于,所述将“this”关键字所指向对象的属性复制到所述DOM对象上,具体为:将“this”关键字所指向对象的除constructor之外的属性复制到所述DOM对象上。3.根据权利要求1所述的方法,其特征在于,所述利用ES5的对象属性定义方法,将所述get/set方法定义到所述DOM对象上,包括:利用Object.defineProperty方法将所述get/set方法的声明名称、声明内容定义到所述DOM对象上。4.根据权利要求1所述的方法,其特征在于,所述利用ES5的对象属性定义方法,将所述get/set方法定义到所述DOM对象上,包括:创建一临时对象;将get/set方法所属类的父类的属性复制到所述临时对象上;将所述get/set方法的声明名称、声明内容赋值给所述临时对象;为get/set方法所属类的子类保存所述临时对象的当前内容;利用Object.defineProperties方法将所述临时对象定义到所述DOM对象上。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在转译结果中,添加转译触发代码,所述转译触发代码用于执行以下操作:判断浏览器版本是否满足预设要求;如果浏览器版本不满足预设要求,则触发执行所述功能代码。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在转译结果中,添加get/set方法直译代码;所述get...
【专利技术属性】
技术研发人员:郝立鑫,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。