2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
您將不得不重構(gòu)您的插件模塊,以便它公開(kāi)一個(gè)函數(shù)來(lái)構(gòu)造這些實(shí)例,例如
const myAddon = require('addon');
objects = [myAddon.create(), myAddon.create(), myAddon.create()];
objects[0].somefunction();

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