私は次のクラスを持っています。
class User
{
constructor( username )
{
this._username = username;
}
get username()
{
return this._username;
}
}
User オブジェクトをインスタンス化してネットワーク経由で送信するとmyUserObject.username
、受信側でアクセスしようとすると未定義であるとmyUserObject._username
表示されますが、送信側で設定した値が含まれています。zeromq と messagepack で構築された zerorpc を使用しています。これを機能させるために追加または別の方法でできることはありますか? この問題は、通常のクラス関数でも発生します。今のところ、私のその場しのぎの解決策は、欠陥のあるオブジェクトをコンストラクターに渡し、フィールドを再割り当てすることにより、レシーバー側でオブジェクトを再作成することです。
送信者:
import User from './User.js'
const client = new zerorpc.Client();
//code for client to connect
function createUser()
{
let user = new User( "kacy" );
console.log( user.username ); //kacy
client.invoke( 'createUser', user, someCallback );
}
レシーバー:
import User from './User.js'
createUser( user )
{
console.log( user._username ); //kacy
console.log( user.username ); //undefined
let user2 = new User( user._username );
console.log( user2.username ); //kacy
}