プロトタイプへの 2 つの引数が、期待どおりのインスタンスであるかどうかを検証しようとしています。cleartextStream が node.js ドキュメントでtls.cleartextStreamと呼ばれるもののインスタンスであるかどうか、および manager が別のファイルで自分自身を定義したプロトタイプのインスタンスであるかどうかを知る必要があります。
var tls = require('tls'),
clientManager = require('./client_manager');
var Client = function (cleartextStream, manager) {
/*
* Both arguments must be proper instances of the expected classes.
*/
if (!(cleartextStream instanceof tls.cleartextStream) || !(manager instanceof clientManager))
throw (...)
今まではすべて「よかった」。そのビットが実行されると、次のようになります。
if (!(cleartextStream instanceof tls.cleartextStream) || !(manager instanceof
TypeError: Expecting a function in instanceof check, but got #<CleartextStream>
そして、マネージャー部分の場合:
if (!(cleartextStream instanceof tls) || !(manager instanceof clientManager))
TypeError: Expecting a function in instanceof check, but got [object Object]
では、これらのインスタンスを確認するにはどうすればよいでしょうか。
編集:この投稿を読んだ後、オブジェクトは実際にはコンストラクターのインスタンスであるため、コードを次のように変更することがわかりました
if (!(cleartextStream instanceof tls) || !(manager instanceof clientManager.constructor))
実際には2番目の問題を修正します。それでも、最初のものは持続します。