2 回答

TA貢獻1796條經驗 獲得超4個贊
您將不得不重構您的插件模塊,以便它公開一個函數來構造這些實例,例如
const myAddon = require('addon');
objects = [myAddon.create(), myAddon.create(), myAddon.create()];
objects[0].somefunction();

TA貢獻1765條經驗 獲得超5個贊
這是一個示例代碼,用于創建本機對象的多個實例。 https://github.com/nodejs/node-addon-examples/blob/master/6_object_wrap/napi/myobject.cc
如果您正在處理 native 模塊,那么 native 模塊也必須編寫一些額外的代碼來創建一個新實例。除了創建新實例之外,本機模塊還需要負責實例的生命周期管理。典型的 JavaScript 代碼啟動創建對象的方式有兩種。一種是使用其構造函數,另一種是使用函數調用。負責創建新實例的本機模塊也必須對這兩者進行不同的處理。您可以通過參考有關以下內容的文檔以及示例代碼https://nodejs.org/api/n-api.html獲得更多見解
生命周期管理:
napi_ref
napi_create_reference()檢查是否是構造函數調用
napi_get_new_target()根據現有的本機對象(類型為 napi_value)來實例化新的 JavaScript 對象
napi_new_instance()
添加回答
舉報