SpiderMonkey是Mozilla项目的一部分,是一个用C语言实现的JavaScript脚本引擎,另外还有一个叫做Rhino的Java版本。

  为了在SpiderMonkey中运行JavaScript代码,应用程序必须有三个要素:JSRuntime,JSContext和全局对象。

JSRuntime,为其中的JavaScript变量、对象、脚本和应用程序中使用的上下文分配空间。每个JSContext和脚本中的每个对象都生活在一个 JSRuntime中。他们不能转移到其他运行时上或在与其它运行时共享。一般来说大多数应用程序只需要一个运行时环境。
JSContext,上下文就像是一台小机器,它涉及JavaScript代码和对象的很多东西。它可以编译和执行脚本、获取和设置对象属性、调用 JavaScript函数、一种类型转换为另一种JavaScript数据、创建对象,等等。几乎所有JSAPI函数都要一个JSContext*作为其第一个参数,就像<stdio.h>中的大多数函数都需要FILE*一样.
全局对象,全局对象包含所有可以在JavaScript代码中使用的类、函数和变量。
脚本能看到的全局属性完全由应用程序控制。应用程序首先创建一个对象并加入JavaScript标准类,如Array和Object。然后加入任何程序想加入的自定义的类、函数和变量(象这里的window)。应用程序每次运行js脚本(例如使用JS_EvaluateScript)时提供了该脚本使用的全局对象。至于脚本,它也可以创建自己全局函数和变量。所有的这些函数、类和变量都作为属性存储在全局对象中。

转载于:https://www.cnblogs.com/BiteLu/p/5344969.html

SpiderMonkey相关推荐

  1. SpiderMonkey-让你的C++程序支持JavaScript脚本

    译序 有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在这里.这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScript脚本的 ...

  2. mongodb适用于_适用于MongoDB和Mongometer的SpiderMonkey至V8

    mongodb适用于 通过10gen将MongoDB 2.3 / 2.4的默认JavaScript引擎从SpiderMonkey切换到V8,我想我将借此机会使用mongometer比较这些发行版的相对 ...

  3. 适用于MongoDB和Mongometer的SpiderMonkey至V8

    通过10gen将MongoDB 2.3 / 2.4的默认JavaScript引擎从SpiderMonkey切换到V8,我想我将借此机会使用mongometer比较这些发行版的相对性能. 作为安全专家, ...

  4. 利用SpiderMonkey进行嵌入式开发——学习总结

    利用SpiderMonkey进行嵌入式开发--学习总结 许峰 2007/07/30 最近在学习javascript引擎SpiderMonkey,学了一个星期了,终于有点眉目,现将学习经验记录下来,已被 ...

  5. spidermonkey的使用及代码(SpiderMonkey1.7)

    参见https://blog.csdn.net/kaitiren/article/details/21961235 https://developer.mozilla.org/en-US/docs/M ...

  6. 脚本引擎小PK: SpiderMonkey vs V8

    介绍 SpiderMonkey是Firefox使用的脚本引擎,V8是Google Chrome使用的脚本引擎.这篇文章介绍了怎样在自己的C++程序中嵌入这两种脚本引擎,以及简单做了一些横向的对比. 编 ...

  7. 将JS嵌入C++ ————Spidermonkey引擎的使用

    Spidermonkey是火狐的js引擎.我曾经仔细比较过C++嵌入Spidermonkey和v8,最终因为对多线程并行比较执着,于是最终选择了Spidermonkey.网上流传的关于Spidermo ...

  8. windows编译-spidermonkey

    听过Mozilla(火狐浏览器的娘家)的javascript引擎吗?感兴趣吗?想在windows平台的应用开发中使用这个引擎吗? 肯定? 好,往下看! 本文给出Windows平台SpiderMonke ...

  9. v8,spidermonkey,chakra,spidermonkey四大主流JS引擎安装教程

    四大主流JS引擎安装教程 参考网址: https://github.com/sslab-gatech/DIE/tree/master/engines 安装步骤: ./download-engine.s ...

最新文章

  1. D3D中简单的截图方法 (转)
  2. HW--漂亮度2(测试通过)
  3. windows安装php和mysql
  4. oracle数据库常用操作
  5. 通过Flex布局设置水平垂直居中
  6. Ubuntu 下 Pytorch, Tensorflow 对应的Python、英伟达显卡驱动、CUDA、CUDNN版本与环境信息查看方法
  7. WPS---EXCEL(十一)---将插入数据转化成柱状图
  8. Vue3使用Swiper
  9. python里load什么意思_如何从python中执行LOAD DATA命令
  10. 今年Java面试必问的这些技术面,完整版开放免费下载!
  11. 基于JAVA旅行指南网站计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  12. C语言基础——sizeof的用法总结
  13. 测试内存超频软件,内存超频工具(SPDtool)
  14. 前端vue实现分页功能
  15. SQL day_03(5.6)DQL详解
  16. 学习笔记--肯德基餐厅信息查询
  17. 一部好看过武侠小说的热血互联网史!
  18. 如何发面做馒头、包子
  19. 位域,内存,大小端详解
  20. CUDA stream 与 CUDA event 详解

热门文章

  1. 【STM32】GPIO模拟I2C程序示例
  2. 【ARM】Tiny4412裸板编程之LED(C语言)
  3. 【Linux网络编程】循环服务器之TCP模型
  4. 【Linux】一步一步学Linux——uname命令(72)
  5. mysql数据库21_MySQL数据库技术(21)[组图]_MySQL
  6. python线性输出_python sklearn-02:线性回归简单例子1
  7. Symmetric multiprocessing(SMP)下的spinlock
  8. CPU并行与GPU并行联系及区别
  9. ACCESS在哪输入SQL语句
  10. [NOTE] SQLite基础及注入相关