オブジェクトにアクセスしたいのですが、どうすればよいかわかりません。 私は 'ctx'にアクセスしたいですが、base.ctxを使うと常にnullが返されます(これはクロージャですか?)。関数を使用せずにオブジェクト内のオブジェクトにアクセスしますか?
window.base = function() {
var c = null,
ctx = null;
window.addEventListener("load", function(){
c = document.getElementById("canvas");
ctx = c.getContext("2d");
}
}
解決策は、ctxを返したベースで関数を呼び出すことだということがわかりました。
window.base = function() {
var c = null,
ctx = null;
window.addEventListener("load", function(){
c = document.getElementById("canvas");
ctx = c.getContext("2d");
}
return {
ctx: function(){return ctx;}
};
}
は、それから私は、CTXにアクセスすることができますが、今私のすべてのアクセスは、する必要があります
base.ctx().setStyle = "white";
むしろ私はあるたいものより:
base.ctx.setStyle = "white";
ことは可能ですか?私は 'this'/scopeや何かの可能性のある解決策があると思っていますが、まだ十分なJavaScriptを知りません。
なぜ耀輝ではなく、ウィンドウを使用してVAR OBJ = {} obj.ctx =機能() – Scopi
されている大きな問題は非同期* ctx'が移入され、 'ので、あなたは簡単に競合状態に実行できることです。* – deceze
@スコピ:私はそれを変更します、ありがとう。 – SarahC