javascriptノードv8.5.0でコンストラクタ関数のインスタンスを作成する場合と同じように、関数の呼び出しに同じリソースと時間がかかるのですか?パフォーマンスを作成するには何が良いですか?コンストラクタ関数の関数またはインスタンス?
私のように、彼らは私に同じ結果を与えることを見つける:私はmodule.exports = new repo;
でmodule.exports = repo();
を交換した場合
var repo = function() {
var db = {};
var get = function (id) {
console.log('Getting task ' + id);
return {
name: 'new task from db'
}
}
var save = function (task) {
console.log('Saving ' + task.name + ' to the db');
}
console.log('newing up task repo');
return {
get: get,
save: save
}
}
module.exports = repo();
それは私も同じ結果が得られますが、私はより良いパフォーマンスが賢明である1知っている必要があります。あなたがmodule.exports = new repo;
を使用して
ので、同じメモリインスタンスを指すようになり、ここでthis
で、レポ関数を呼び出すとmodule.export
に戻り値を代入しているmodule.exports = repo();
を使用して
私見に簡素化しても
か:あなたはコードをインライン化できるようにのみ、一度とにかくそれを呼んでいますオブジェクト;理想的には1つ。 'repo()'や 'new repo'を一度しか作成しません。 – lilezek
違いは気にするほど価値がないほど小さいです。むしろ、関数をどの程度正確に使用するかを決めるべきです。 'new'または' new'はありませんか? – deceze
もしそうなら、@decezeを使用するベストプラクティスは何ですか? –