我在使用laya过程中,对比了很多as代码和生成的js代码,得到了一些猜测性的结论:
1. 编译as到js是一个较直白的过程,推测编译器并没有生成抽象语法树,再根据它生成js,而是做了某种翻译。
2.假设存在一个地方:同样语法js规范和as规范不一致,实际上应该按js的规范来理解代码。也就是理解代码的行为其实要看js的行为。
3.假设存在一个地方,同样的结果js和as语法不同,那就只支持js的语法。(例如parseInt)。
支持我猜测的例子其一是编译前后的代码对比;另外一个例子,是laya官网说的parseInt的例子,恰恰是as里没有但js里有的方法。所以我猜测是为了编译方便,干脆让用户写js的这个方法。
如果这个内容不是机密的话,恳请官方对于具体编译过程稍微介绍一下。因为明白了这个的话对开发时思考的方式还是有一些影响的。
或者换句话问,我开发的时候,虽然写着as,但我完全按照js的思想来思考代码的行为。这个思路是正确的吗?
期待回复,谢谢!