は一例ですが、効果的に私は何を達成しようとしていることは、変数ではなく通話を続行するために使用することができるということですオブジェクト 'contactForm'自体を参照するよりも。また、jQueryをクリックするなどのイベントでこれを自動的に渡すため、これよりも少し安全です。Javascriptのオブジェクトの受け渡し
答えて
2つのもの。あなたが期待するよう
- あなた
that
は、作成したthis
ことのContactFormにない実際のContactFormを指しています。 that
はお問い合わせフォームの所有物であり、this.that
またはcontactForm.that
でアクセスする必要がありますが、そのような種類のものは本来の目的を破ります。
次のいずれかの
- リファレンスのContactForm自体
またはすべてあなたがしたい場合は
init: function(){ var that = this; that.lilalert(); }
それを必要とする関数の内部that
Sを定義しますdoはavですOID this
ペテン、代替はクロージャを使用して(したがって、this
を経由して結合の代わりにダイナミックの字句、静的スコープ)さ
function make_contact_form(){
var lilfield: 'I just equal this';
var fields = ["hc_name","hc_email","hc_telephone"]; //dont use new Array. its evil
var submit_button = jQuery("#hc_submit");
var init = function(){
lilAlert(); //lilAlert is a name is scope. call it directly
};
var lilAlert = function(){
alert("lets pump this out");
};
return {
lilfield: lilfield,
fields: fields,
submit_button: submit_button,
init: init,
lilAlert: lilAlert
};
}
あなたはそれを複雑にしています。 this.lilAlert()
と電話をかけてください。init()
をとし、contactForm
を呼び出している限り、正常に動作します。
contactForm.init(); // this will work;
。
setTimeout(contactForm.init, 1000); // this won't work, as `init()` will have `this` set to `window`
setTimeout(function() { // This approach will work though.
contactForm.init();
}, 1000);
それはその意味でうまくいきます。しかし、例えば私がこれを作ると言うと、 clickAction:function(){ this.lilAlert(); } jQueryバインドから次のように呼び出します。 jQuery( "#element")。bind( 'click'、contactForm.clickAction); これは、オブジェクトスコープから参照されたときにオブジェクトではなくクリックされた要素になるため、問題が発生します。 @David; – David
;あなたがする必要があるのは、 'setTimeout'の例のように無名関数でラップすることだけです。 – Matt
- 1. jQuery/javascriptオブジェクトの受け渡し
- 2. オブジェクト間のオブジェクトの受け渡し
- 3. TomcatリスナーからJavascript関数へのオブジェクトの受け渡し
- 4. JavaScriptからJavaへのDataTableオブジェクトの受け渡し
- 5. JavaScriptからQt/C++オブジェクトへの文字列の受け渡し
- 6. プロセス間オブジェクトの受け渡し
- 7. javascriptとPHP変数の受け渡し
- 8. F#パラメータの受け渡し
- 9. Reflection.Emitパラメーターの受け渡し
- 10. Pythonデータの受け渡し
- 11. 他のメソッドとオブジェクトへのエンティティコンテキストの受け渡し
- 12. RMIを使用したオブジェクト参照の受け渡し
- 13. ストーリーボードを使用したオブジェクトの受け渡しiOS5
- 14. CodeIgniterの中にPHP変数の受け渡しとjavascriptのエラー
- 15. JavaScriptでの匿名関数の引数の受け渡し
- 16. WPF:UIスレッドとバックグラウンドスレッド間のオブジェクトの受け渡し
- 17. メニュー項目選択ハンドラへのオブジェクト参照の受け渡し
- 18. HTTP POSTのJSONオブジェクトとJSON文字列の受け渡し
- 19. インテントによるオブジェクトのArrayListの受け渡し - Java(Android)
- 20. ビューからコントローラへのオブジェクトの受け渡し
- 21. Flex 3からFlexクラスへのオブジェクトの受け渡し
- 22. LineCallbackHandlerからItemWriterへのオブジェクトの受け渡し
- 23. JavaScriptを使用したURLパラメータの受け渡し
- 24. flexからjavascript関数への配列の受け渡し
- 25. javascript関数へのパラメータの受け渡しが失敗する
- 26. JavascriptからPHPへのFacebook認証の受け渡し
- 27. ExpressJS JavaScriptへの変数の受け渡し
- 28. javascriptへのパラメータの受け渡し(関数ではない)
- 29. javascriptからASPへの可変値の受け渡し
- 30. MVC ViewBagからJavaScriptへのリストの受け渡し
あなたはhttp://api.jquery.com/jQuery.extend/をお探しですか? –