C++ オブジェクトを javascript に渡すことはできません。できることは、C++ オブジェクトでもある NPObject を渡し、NPRuntime インターフェイスを介して物事を公開することです。
詳細については、 http://npapi.com/tutorial3を参照してください。
また、このようなことを大幅に簡素化するFireBreathフレームワークを確認することもできます。
編集:あなたの質問を誤解しているようです。必要なのは、プラグイン インスタンスにリンクされたデータを保存できるようにすることです。必要なのは、プラグインの作成時に提供される NPP です。NPP には、ndata (ネットスケープ データ) と pdata (プラグイン データ) の 2 つのメンバーがあります。pdata ポインターはユーザーが制御できます。必要な任意の値を指すように設定し、使用したいときにいつでも実際の型にキャストし直すことができます。もちろん、NPP_Destroy で必ずキャスト バックして削除してください。私は通常、いくつかの情報を保持する構造体を作成します。FireBreath はこれを使用し、すべてのプラグイン呼び出しを Plugin オブジェクト インスタンスに送信して、通常のオブジェクトであるかのように動作できるようにします。
関連する FireBreath のコード例:
https://github.com/firebreath/FireBreath/blob/master/src/NpapiCore/NpapiPluginModule_NPP.cpp#L145
NPP_New と NPP_Destroy に特に注意してください。また、NPP の pdata メンバーの使用方法にも特に注意してください。
これについては、http://npapi.com/tutorial2でも説明されています。