2011-07-18 17 views
12

Chromeのデベロッパーコンソールでv8Localeという機能を見つけました。 (それがされているように見えるJavaScriptでは 'ネイティブ'キーワードは何を意味しますか?

function (a){ 
native function NativeJSLocale(); 
var b=NativeJSLocale(a); 
this.locale=b.locale; 
this.language=b.language; 
this.script=b.script; 
this.region=b.region; 
} 

私は、インターネット上で検索を開始し、ソースであるように思われthis fileが見つかりました:私はので、私はソースコードを取得するための関数を入力し、それが次のコードを明らかに興味がありましたしかし、縮小された)。

nativeの意味は何ですか?

function bar() {} 

function foo() { 
    native function bar(); 
} 

私は、次のエラーメッセージが表示されます(私は予想通り、実際に)::私は自分自身このような何かをしようとすると

SyntaxError: Unexpected token native 

をどのようにそれがv8Locale機能がnativeトークンが含まれている可能性がありますそれは何を意味するのですか?関数はC++コード

+1

ソースパス 'SRC/extensions/experimental/i18n.js'。クロム拡張ファイルのように聞こえる。クロム拡張はJavaScriptのスーパーセットに書くことができます。 – Raynos

+0

ブラウザのコードかもしれません。たとえば、Chromesコンソールで 'window.history.back'と表示され、' function(){[native code]} 'が表示された場合 –

答えて

9

。それはChromeの拡張機能の一部だよう

サウンズ

+2

* native *は' C++ 'を意味しないことに注意してください。どの言語でも構わないが、例えばMozillaは 'Java'を使っている。 –

2

nativeキーワードがECMAScriptの5仕様で定義されていない内に実装されていることをv8を伝えるために使用される

+1

それは定義されていませんが、予約されています...それは何のためのアイデアを持っているいくつかの人々が最も確かにあります! –

+1

@AlexisWilke Javaのキーワードであるため予約されています。 public、private、volatile、synchronized、transientなどと同じです。これはかなり困難ではありません。私はいくつかの他の場合に備えて予約されていると思います。 –

0

ものECMAScriptに基づいておりActionScriptは、ここにネイティブキーワード定義:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/statements.html#native

彼らはコードで例を提供します。

native function functionName(); 
class className { 
    native function methodName(); 
} 

説明は次のとおりです。

Flash Playerがネイティブコードで関数またはメソッドを実装することを指定します。 Flash Playerは、ネイティブキーワードを内部的に使用して、ActionScriptアプリケーションプログラミングインターフェイス(API)で関数とメソッドを宣言します。このキーワードは、あなた自身のコードでは使用できません。

マットによって示唆されるように(あなたのJavaScriptインタープリタのソースコードを微調整しない限り、...)あなた自身がネイティブ関数を定義することはできませんので、ネイティブとしてマークされた関数は、インタプリタで実装されている

関連する問題