私は確かにJavaScriptの内部の仕組みについてほとんど知りませんが、ライブラリを作成する必要があり、学びたいと思っています(したがって、ここで質問しています)。グローバル名前空間を汚染しないようにクロージャーとウィンドウへのエクスポートを使用することは理解していますが、それ以上は少し混乱します。
(function() {
var Drop = window.Drop = function() {
var files = [];
var add = function(word) {
files.push(word);
return files;
}
return {
files: files,
add: add
}
}
})()
// All of these seem to be the same?
var a = Drop();
var b = new Drop();
var c = new Drop;
// Each has their own state which is what I want.
a.add("file1");
b.add("file2");
c.add("file3");
- Drop を「初期化」する 3 つの方法がすべて同じなのはなぜですか?
- 彼らに独自の状態を持つ能力を正確に与えるものは何ですか?
- Drop でこれらの関数をエクスポートするための return 構文に代わるものはありますか?
- このような自己完結型ライブラリを作成するための、より優れたベストプラクティスの方法はありますか?
私はネットを検索しましたが、この件に関してほとんど一貫性がありませんでした.