1

JavaScriptコアライブラリメソッドなどが他の言語( Cのglibpush(), join(), split() )のようにどのように実装されているかを確認できるリファレンスまたはオンラインサイトはありますか

4

2 に答える 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 仕様で内部ロジックについて多くを学ぶことができますが、実装はブラウザーに依存します。

http://www.ecma-international.org/ecma-262/5.1/

于 2013-05-14T14:09:34.910 に答える