是否有任何参考或在线网站,我可以在其中看到 JavaScript 核心库方法push(), join(), split()
等如何像其他语言一样实现(glib for C)
问问题
88 次
2 回答
3
它因实现而异(在合理范围内,实现必须从根本上遵循规范)。您可以查看 V8(Chrome 的引擎)和 SpiderMonkey(Mozilla 的)如何工作的所有细节,它们都是开源的:
例如,这就是V8 的实现方式Array#push
(该链接中的行号可能会腐烂):
function ArrayPush() {
if (IS_NULL_OR_UNDEFINED(this) && !IS_UNDETECTABLE(this)) {
throw MakeTypeError("called_on_null_or_undefined",
["Array.prototype.push"]);
}
var n = TO_UINT32(this.length);
var m = %_ArgumentsLength();
for (var i = 0; i < m; i++) {
this[i+n] = %_Arguments(i);
}
this.length = n + m;
return this.length;
}
于 2013-05-14T14:08:12.870 回答
0
您可以在 ECMAScript 规范中了解大量有关内部逻辑的信息,但实施取决于浏览器。
于 2013-05-14T14:09:34.910 回答