2

假设我想调用一些 JavaScript 函数。我应该将所需的资源文件(JavaScript 文件)保存在应用程序文件夹和链接中。eval()但是像,这样的内置函数toString()是从什么生成的呢?尤其:

  1. 这些函数是从 JavaScript 文件或任何其他机制中检索的吗?
  2. 如果是这样,它们在哪里?
  3. 这些是浏览器安装的子部分吗?
4

3 回答 3

6

1.这些函数是从js文件还是其他机制中获取的?

不,内置函数是语言的一部分,最有可能用 C 或 C++ 实现。 但是,由于 JavaScript 是一种动态语言,因此可以在某个地方通过 Javascript 函数重新定义内置函数。例如:

String.prototype.substr = function () { return 'Take that, built-in function!'; };
var s = 'Hello';
window.alert(s.substr(1,2));

2.如果是,它们在哪里?

请参阅答案 1。但是,如果您对这些内置函数的实现感到好奇,则可以使用开源 JavaScript 引擎在线挖掘源代码。例如, Chrome 使用的 JavaScript 引擎V8的源代码可以在这里找到。

判断一个函数是否为原生的一种方法是在警报中弹出它

window.alert(Math.floor);

这会给你一个警告框,上面写着:

在此处输入图像描述

...表示代码是原生的,不能显示为 JavaScript。

3.这些是浏览器安装的子部分吗?

它们是浏览器附带的 JavaScript 安装的一部分。不同的浏览器有不同的 JavaScript 引擎。

于 2013-07-03T05:21:27.970 回答
0

浏览器实现了一定的标准功能集以符合 Ecma 标准。这意味着您可以相信某些功能将开箱即用

于 2013-07-03T05:24:02.350 回答
0

您是否曾经在浏览器中启用/禁用过 javascript,如果没有,请转到浏览器的设置并在那里查看,这意味着是的,该脚本随浏览器一起提供。

所有浏览器都带有javascript,以支持Web UI和其他功能的交互性。

检查此链接以比较 javascript 引擎

于 2013-07-03T05:25:52.187 回答