我想知道是否有可能在 Javascript VM 之上编写一种新语言,以便您可以嵌入您的语言 - 它基于 javascript - 并且它可以与 native javascript 一起工作。
例子:
var person_exists = true; // native js
Animal eats banana // my language
console.log(person_exists) // native js
我看过 Cappuccino 的语法,他们说它可以在浏览器中运行而无需编译。
但后来我看到了 Coffeescript 的语法,那必须先编译成 javascript。
那么是否有可能在 Javascript VM 之上创建一种新的语言/javascript 语法?
如果是,是否有关于如何执行此操作的教程/书籍?
最佳答案
Processing.js是一种由 Javascript 解释的脚本语言(据我所知是解释的,而不是编译为 JS),你可以看看那个方法。 Processing.js 专为在网页上生成图形而量身定制,因此它可能不是您所需要的,但它是在一个网站上使用两种脚本语言的示例。
(Processing 是一种独立的图形语言,它首先在 Java 环境(以及其他实现)中运行,然后才构思出 Canvas 元素并进行了另一种基于 Javascript 的实现。)
您似乎想要的是“具有我自己的功能的 Javascript”。这只有在您(或其他人)在 Javascript 之上构建 JS+您的功能解释器时才有可能。不过,我认为这不是一件非常合理的事情。 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);
例如?
关于javascript - 在 Javascript VM 之上编写另一种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785812/