このテンプレートは廃止されています。使用しないで下さい。
新たなJavaScriptコンテキストを生成します。 Creates a new JavaScript context.
構文
= Syntax =
JSContext * JS_NewContext(JSRuntime *rt, size_t stackchunksize);
Name | Type | Description |
---|---|---|
rt | JSRuntime * | コンテキストの親となるランタイムを指定します。JavaScriptのオブジェクト、関数、文字列、数値はJSRuntime 内のコンテキスト内で共有されますが、JSRuntime をまたぐことはありません。 Parent runtime for the new context. JavaScript objects, functions, strings, and numbers may be shared among the contexts in a <code>JSRuntime</code>, but they cannot be shared across <code>JSRuntime</code>s. |
stackchunksize | size_t | 各スタック領域のサイズをバイトで指定します。標準的には |
説明
= Description = スクリプトの実行および値の保持に利用するコンテキストを新規に生成する関数です。各スクリプトは独自のコンテキスト上で実行され、各コンテキストは特定のJSRuntime
オブジェクトrt
と関連づけられています。 Creates a new JavaScript context for executing scripts and examining JavaScript values. Each script runs in its own context, and each context must be associated with a specified <code>JSRuntime</code>, <code>rt</code>.
JS_NewContext
は、成功したとき新たなコンテキストへのポインタを返します。失敗したときはNULL
を返します。 On success, <code>JS_NewContext</code> returns a pointer to the new context. Otherwise it returns <code>NULL</code>.
この関数の呼び元は、コンテキストを使い終わったらJS_DestroyContext
を実行しなければなりません。JSRuntime
を解放する前に、そのJSContext
をすべて解放する必要があります。 The caller must call <code>JS_DestroyContext</code> when it is done using the context. Before a <code>JSRuntime</code> may be destroyed, all the <code>JSContext</code>s associated with it must be destroyed.
JS_THREADSAFE
を有効にしたビルドでは、あるJSContext
を同時にアクセスできるスレッドは一つだけです。新規のJSContext
は、初期状態で呼び元のスレッドと関連付けられます。コンテキストがあるスレッドと関連付けられている間は、他のスレッドからそれを利用したり解放することはできません。JSContext
を別のスレッドに移動する場合は、JS_ClearContextThread
とJS_SetContextThread
を利用してください。 In a <code>JS_THREADSAFE</code> build, only one thread may use a <code>JSContext</code> at a time. The new <code>JSContext</code> is initially associated with the calling thread. As long as it stays associated with that thread, no other thread may use it or destroy it. A <code>JSContext</code> may be transferred from one thread to another by calling <code>JS_ClearContextThread</code> and <code>JS_SetContextThread</code>.
新たに生成したJSContext
は、初期状態においてグローバルオブジェクトを持ちません。 The new <code>JSContext</code> initially has no global object.
注記
== Notes == 一度生成されたコンテキストは異なるスクリプトやJSAPI呼び出しのために複数回利用される可能性があります。具体的には、Webブラウザが各HTMLに対応する独立したコンテキストを生成したときに、ページ内のすべてのスクリプトは同じコンテキストを用いて実行されるといったシナリオが考えられます。 Once created, a context can be used any number of times for different scripts or JSAPI queries. For example, a browser would create a separate context for each HTML page; every script in the page would use the same context.
新規コンテキストは、Object
、Date
、Array
といった標準的なグローバルオブジェクトを一切保持していません。それらを利用するには、JS_InitStandardClasses
を呼び出す必要があります。JSAPIを利用するアプリケーションで独自の関数やクラスを提供したい場合には、JS_GetGlobalObject
を使ってそのコンテキストのグローバルオブジェクトを取得し、JS_DefineFunctions
およびJS_InitClass
をそれに適用することで独自のグローバル関数やクラスをコンテキストに追加できます。 The new context initially does not contain any globals, even standard globals such as <code>Object</code>, <code>Date</code>, and <code>Array</code>. To create them, call <code>JS_InitStandardClasses</code>. A JSAPI application typically also provides some custom functions and classes. Use <code>JS_GetGlobalObject</code> to get a context's global object. Use <code></code> and <code>JS_InitClass</code> to add custom global functions and classes to the context.
stackchunksize
は、JavaScriptのスタックサイズを調節するものではありません(JSAPIでは、スタック長を調節するインタフェースを提供していません)。stackchunksize
に大きい値を設定するのは誤った方法です。DEBUG
ビルドにおいて、stackchunksize
を大きくすると性能が著しく劣化します。一般的には8192
が推奨されます。 The <code>stackchunksize</code> parameter does not control the JavaScript stack size. (The JSAPI does not provide a way to adjust the stack depth limit.) Passing a large number for <code>stackchunksize</code> is a mistake. In a <code>DEBUG</code> build, large chunk sizes can degrade performance dramatically. The usual value of <code>8192</code> is recommended.
関連項目
= See Also =
Groups | Functions |
Documents | LXR ID Search |
Entries | JS_ContextIterator, |