Transcrypt是一个很有意思的工具:
它让你告别手写繁复的JavaScript代码,使用相对简明清晰的Python代替这一工作。
之后使用这个工具,可以把Python编写的代码转换成JavaScript。
1. 为什么不直接写JavsScript?
JavaScript本身不算是很难的编程语言,但还是有很多不便之处。这里只能举几个例子:
1.1 js的模块化问题。
想要实现一个很复杂的js程序,一般要考虑将不同的功能拆分成模块,然后各自完成各自的任务。
然而,js本身没有什么方式可以做到这一点:
要么在浏览器或者NodeJS中,使用require这样的方案(”AMD”—-模块异步加载)(浏览器还需要额外加载require.js),
要么使用各种打包工具(CommonJS—-规定了通用的模块定义方式),根据模块各部分代码相互关系,将所有的代码打包进一个巨大的文件。
Transcrypt支持Python的模块机制(import语法),效果上最后还是生成一个打包的代码文件,但使用起来,比CommonJS要清晰一些。
1.2 缺乏对class这样的关键字的支持
JavaScript虽然算是一种基于对象的语言—-JavaScript中包括数字、字符串等都是对象,
但又没有办法通过class来自己声明一个对象。
这就导致不同的程序员,会采用不同的方案来构建对象。比如有使用Object的:
var owl = {};
owl.color = "white";
owl.category = "Bubo bubo";
owl.eat = function(){ ... };
或者改写一个函数,增加各种attributes:
function Owl(){
var self = this;
this.color = "white";
this.category = "Bubo bubo";
this.eat = function(){ ... };
return this;
}
var owl = new Owl();
1.3 缺乏语法糖,代码复杂
Python简洁的语法,很多得益于丰富的语法糖:
很简洁的几句话就可以实现复杂的功能,而JavaScript则可能要从头开始写一系列代码。
举几个例子:
a) 使用给定的值生成一个字符串
output = """My name is {name}, I'm {age} years old.
My favourite fruit is {favourite}.""".format({
"favourite": "banana",
"name": "