!--a11y-->
BIND_INSTANCE 
BIND メソッドのバリアント。もっぱら ABAP オブジェクトのバインドを可能にします。BIND とは対照的に、インスタンスは参照と違ってバインドされます。バインドされた ABAP オブジェクトは、インスタンスへのリンク (属性とメソッド)で説明されたのと同一のオブジェクトのパブリックインスタンス属性へのアクセスをJavaScript で可能して、パブリックインスタンスメソッドを呼び出し可能にします。これらは、静的コンポーネントへのアクセスを提供しません。
JavaScript オブジェクトの名称。この名称には最大 256 個の ABAP オブジェクトをプロパティとしてバインドできます ( トップレベルのバインド) 。コンテキスト内では、任意の数のトップレベルバインドを作成できます。空文字列が転送される場合、ABAP オブジェクトはコンテキストのルートオブジェクト ( たとえば、グローバル変数) のプロパティにバインドされます ( ルートレベルのバインド、非推奨) 。
トップレベルバインドオブジェクトまたはルートオブジェクトのプロパティの名称。JavaScript コンテキスト内では、そのオブジェクトの下の ABAP データオブジェクトにアクセスが行われます。
参照変数の名称。バインドが実行された場合、この変数はABAP オブジェクト内のインスタンスをポイントする必要があります。

report DEMO_JAVA_SCRIPT_BIND_INSTANCE.
class C1 definition.
public section.
data ATTR type STRING.
methods CONSTRUCTOR.
endclass.
class C1
implementation.
method CONSTRUCTOR.
ATTR = 'Hello '.
endmethod.
endclass.
data OREF type ref to C1.
data SOURCE type
STRING.
data JS_PROCESSOR type ref to CL_JAVA_SCRIPT.
data RETURN_VALUE type STRING.
start-of-selection.
JS_PROCESSOR = CL_JAVA_SCRIPT=>CREATE( ).
create object OREF.
JS_PROCESSOR->BIND_INSTANCE(
exporting NAME_OBJ = 'abap'
NAME_PROP = 'Ref'
changing OBJECT_REF = OREF ).
if
JS_PROCESSOR->LAST_CONDITION_CODE
<>
CL_JAVA_SCRIPT=>CC_OK.
message 'Binding Error' type 'E'.
endif.
SOURCE = 'abap.Ref.attr += " World!";'.
RETURN_VALUE
=
JS_PROCESSOR->EVALUATE( JAVA_SCRIPT = SOURCE ).
write RETURN_VALUE.
この例では、JavaScript は OREF->ATTR 属性を 'Hello' から 'Hello World!' に拡張します。先に CREATE OBJECT 命令を実行しないで BIND_INSTANCE メソッドを呼び出すと、JavaScript の処理は停止されます。