オリジナルモーダル奇妙な関数の動作 - JavaScriptの
私は普遍的なapp
オブジェクトを使用します。この空のオブジェクトには、必要に応じて関数を追加します。問題は、いくつかの関数がappオブジェクト内の他のすべての関数に必要となることです。
私の質問は、作成時にオブジェクト内のすべての関数を定義することなく、大きなオブジェクトを構築する方法です。私はコードの塊を1つの天文学的な長い.js
ファイルを持たないように分割したいと思います。ここで私が面白い発見何かがある
モーダル
更新var app = {
tow: function() {
return true;
},
one: function() {
return this.tow();
}
};
// app.one() => returns true
:
は私の元のコードの簡単な例があります。私は
prototype
モーダルで遊んでいて、奇妙なことを発見しました。このモデルを使用すると、他の追加機能を呼び出すことができる機能を追加できます。しかし、イベントリスナーを作成すると、コードを実行できなくなります。誰がこれがなぜなのか説明できますか?予想外の結果に修正コード:
function modal() {} modal.prototype.one = function() { return this.two(); }; modal.prototype.two = function() { return "cool"; }; modal.prototype.init = function() { document.getElementById('go') .addEventListener("click", this.one); } var app = new modal(); app.init(); // app.one() => returns true // event listener => returns "TypeError: this.two is not a function"
JSBIN:あなたが行ったようにhttps://jsbin.com/vureruziza/edit?js,console,output
投稿ごとに1つの質問のみをお願いします。 – Bergi
"*作成時にオブジェクト内のすべての関数を定義することなく、大きなオブジェクトを構築するにはどうすればいいですか?*" - あなたは必要ありません。まだ割り当てられていない他の関数を使用する関数を作成できます。すべてが作成される前に、実際にそれらの関数のどれかを呼び出すべきではありません。 – Bergi