我想知道是否可以在Javascript VM之上编写一种新语言,以便您可以嵌入您的语言 - 这是基于javascript的 - 它将与本机javascript一起使用。
示例:
var person_exists = true; // native js
Animal eats banana // my language
console.log(person_exists) // native js
我见过Cappuccino的语法,他们说它可以在浏览器中没有编译的情况下运行。
但后来我看到了Coffeescript的语法,并且必须首先编译为javascript。
那么可以在Javascript VM之上创建一个新的语言/ javascript语法吗?
如果是,是否有关于如何执行此操作的教程/书籍?
答案 0 :(得分:2)
Processing.js是一种由Javascript解释的脚本语言(根据我的解释,已解释,未编译为JS),您可以查看该方法。 Processing.js专门用于在网页上生成图形,因此它可能不是您所需要的,但它是在一个网站上拥有两种脚本语言的示例。
(处理是一种单独的图形语言,首先在Java环境(以及其他实现)中运行,然后构思Canvas元素,并基于Javascript进行另一种实现。)
你想要的是'带有我自己功能的Javascript'。这只有在你(或其他人)在Javascript之上构建JS + yourfeatures解释器时才有可能。我认为这不是一件非常合理的事情。 Processing.js的解决方案可能是一个很好的中间环节,您可以将自己的语言与实际的Javascript分开 - 也就是说,如果您的语言和常规JS可以分开。
<script language="javascript">
var person_exists = true; // native js
interpret("animal"); // your language interpreter. Interpret function looks through the DOM for a script tag with the "myscript" language and the 'animal' ID.
console.log(person_exists) // native js
</script>
<script language="myscript" id="animal">
Animal eats banana // your language
</script>
但是,在跳到“我知道,我会发展自己的语言”之前,我会建议考虑一下你真正想要的东西。部分。
有什么问题Animal = {
eats: function(fruit) {
console.log('om nom nom nom ' + fruit);
}
};
var person_exists = true;
Animal.eats(banana);
console.log(person_exists);
例如?
答案 1 :(得分:1)
当然,请参阅GWT或Parenscript了解一些完全不同的示例。