私は ActiveX オブジェクト用の Javascript ライブラリを作成して、連鎖可能性を実現しようとしています。
たとえば、これを置き換えようとしています:
var dbEngine=new ActiveXObject('DAO.DBEngine.36');
var dbs=dbEngine.OpenDatabase('D:\\Todo.mdb');
var rs=dbs.OpenRecordset('SELECT * FROM ListItems');
このようなもので(la jQuery):
var rs=AX('DAO.DBEngine.36')
.OpenDatabase('D:\\Todo.mdb')
.OpenRecordset('SELECT * FROM ListItems');
私はこれを行うことができることを知っています:
var rs=new ActiveXObject('DAO.DBEngine.36')
.OpenDatabase('D:\\Todo.mdb')
.OpenRecordset('SELECT * FROM ListItems');
しかし、Recordset オブジェクトから Database オブジェクトにアクセスする方法がありません。
これを行うために、AX 関数は内部で DBEngine オブジェクトを作成し、そのメンバー/プロパティを検査してから、返されたオブジェクトで対応するメソッドを公開する必要があります。
メンバー/プロパティがオブジェクトを返す場合、そのオブジェクト自体が AX 関数にラップされて返されます。