2016-10-09 9 views
0

この質問はこの古い質問Where-can-i-find-javascript-native-functions-source-codeなくJS構文

への参照であり、そのページ上の答えは、ソースコードがcであるかということ、言いますc++しかし、ソース(定義)がそれらの言語にある理由について私は興味がありますか?つまり、それらは例えばtoString()メソッドのJS関数定義です。これはJavaScript関数なので、その定義はJavascript構文を使用して記述する必要があります。

toString;クロムコンソール出力function toString() { [native code] }です。

ユーザ定義関数の場合は、toString()の定義を見ることはできません。その他の組み込み関数 は結局、エンジンの解釈にJavaScriptシンタックスで定義する必要がある関数/メソッドです。それらを正しく。

私はあなたが何をしようとしているのか理解できれば幸いです。

+0

ある 'が、私は理由を好奇心ソース(定義)はそれらの言語にありますか? 'JSはブラウザ以外ではネイティブに実行されないためです。それは解釈された言語です。ほとんどすべてのものと同様に、最終的にメモリを操作するためには別の言語の基礎となるものが呼び出され、C/C++は通常の選択です。 – vlaz

+2

* Javascriptの機能なので、Javascriptの構文を使って定義する必要があります。多くの言語は、さまざまな理由から、外国語でライブラリを実装しています。 –

+2

"エンジンを正しく解釈するには、JavaScriptシンタックスで*を定義する必要があります*" - いいえ。組み込み関数の全体的なポイントは、それらを呼び出すことができるエンジンに組み込まれていることです。 – Bergi

答えて

4

コメントに指摘されているように、JavaScriptがどのように機能するかについての基本的な誤解があります。

JavaScriptがそれがホスト環境スクリプトに意味する、すなわち、その用語の最も純粋な意味で、スクリプト言語です。これは、限られた方法でそのシステムを操作するために、より大きなシステム(この場合はC/C++で書かれたWebブラウザ)に組み込まれることを意図しています。

他のいくつかの例は、など、UNIXのスクリプト言語としてのbash、崇高なテキストエディタのスクリプト言語としてPython、emacsののスクリプト言語としてのelisp、World of Warcraftのためのスクリプト言語としてのlua、

だろう

関数が「組み込み」であるとは、スクリプト言語(JavaScript)の関数ではなく、実際にはホスティング環境(たとえばWebブラウザ)の関数であることを意味します。機能に建てられた特定のJavaScriptの標準的な任務が、

、つまり、すべてが。準拠したホスト環境は、基本となる実装がであるもの言語に関係なく、その機能を公開する必要があることを

+0

これはgr8の説明ですが、実際にはホストenvの関数であるいくつかの関数を指摘することができます。例えば ​​'c \ C++'で定義されなければならないホストenvの 'Function()'や 'Object()'関数はありますか? –

+0

@bTech申し訳ありませんが、あなたの質問のコメントには、これを追加した頃のことをすぐに追加しました。 –

+0

@bTech標準では、実装ではなく動作のみが指定されています。実装者は、動作が準拠している限り、任意のものを実装できます。 – xaxxon

関連する問題