是否有任何参考或在线网站,我可以看到像push(), join(), split()
等JavaScript核心库方法是如何实现的,就像其他语言一样(glib用于C)
答案 0 :(得分:3)
它因实施而异(在合理范围内,实施必须从根本上遵循the spec)。你可以看到V8(Chrome的引擎)和SpiderMonkey(Mozilla的)如何工作的所有细节,它们都是开源的:
例如,这就是V8 implements 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;
}
答案 1 :(得分:0)
你可以在ECMAScript规范中学到很多关于内部逻辑的知识,但实现依赖于浏览器。