是什么 ? | : | a JavaScript Engine written in Java. |
开发语言 | : | Java |
开发组织 | : | Mozilla |
官方主页 | : | https://www.mozilla.org/rhino |
源码仓库 | : | https://github.com/mozilla/rhino |
step1、安装依赖
所有时 | Terminal + Shell |
下载时 | cURL |
运行时 | JRE | JDK |
step2、使用curl命令下载rhino-x.y.z.jar
()
curl -LO https://github.com/mozilla/rhino/releases/download/Rhino1_7_11_Release/rhino-1.7.11.jar
step3、将下面的代码写到环境变量配置文件中
alias rhino='java -jar ~/rhino-1.7.11.jar'
查看rhino
的使用帮助。
执行jsFile
。
rhino ~/xx.js
不带参数进入交互模式。
这里可以输入JavaScript代码,立即就会看到结果。
我们输入如下的代码:
console.log("Hello Rhino");
运行结果如下 ⤵︎
这是为啥呢?因为console
对象不是ECMAScript的内置对象。 那我们为啥平时能用呢?这是因为Web浏览器和Node.js提供了该内置对象。 从这个小错误,我们可以明白JavaScript Engine与JavaScript Runtime的区别。
这个问题也好解决,我们自己创造一个console
对象不就可以了嘛,编写如下的代码:
console = {
log: print,
warn: print,
error: print
};
console.log("Hello Rhino");
执行这段代码,就可以成功了。
实际上,这是一种非常惯用的手法。比如为了兼容老的浏览器,我们要使用很多的js polyfill
,这些js polyfill
的实现思想就是这样子的。