もう 1 つの大きな利点は、オブジェクトのプライベート プロパティがパブリック名前空間を汚染するのを防ぐことです。
という強力なライブラリを作成して公開したとしCosmos
ます。ユーザーは Node インタープリターを起動し、コンストラクターを呼び出してその新しいインスタンスを作成します。
var Cosmos = require('Cosmos');
var cosmos = new Cosmos('my empire');
これで、ユーザーは入力して Enter キーを押すだけcosmos
で、サポートされているパブリック API を確認できます。2 つのうちどちらをユーザーに表示しますか?
{ name: 'my empire',
grow: [Function: grow],
addStar: [Function: addStar],
beautify: [Function: beautify],
implode: [Function: implode],
destroy: [Function: destroy] }
また
{ _age: 25000,
_size: 35000,
_destroyed: false,
name: 'my empire',
_numStars: 200,
_init: [Function: _init],
grow: [Function: grow],
_grow: [Function: _grow],
addStar: [Function: addStar],
_checkStatus: [Function: _checkStatus],
beautify: [Function: beautify],
implode: [Function: implode],
destroy: [Function: destroy] }