問題タブ [this]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - JQuery:正しい「これ」を指す
アンカーマウスオーバーでそれぞれのアンカーテキストサイズを増やし、マウスアウトでアンカーを削除する非常に単純なプラグインを作成しようとしています。問題は、私が正しい「これ」を得ることができないということです。ので、私は持っています:
そして私はそれをこのように呼びます:
.call()
またはのようなものを使用する必要があると思い.apply()
ますが、方法がわかりません。適切なリソースを見つけることができませんでした。
javascript - Javascript無名関数の「this」(スコープ)を取得するにはどうすればよいですか?
匿名関数がそのコンテキストに基づいて動作する必要があるとしましょう。ただし、それが「ウィンドウ」にバインドされているか、不明なオブジェクトにバインドされているかは異なります。
匿名関数が呼び出されたオブジェクトへの参照を取得するにはどうすればよいですか?
編集、いくつかのコード:
あなたは合法的に尋ねるかもしれません、なぜあなたはそのようなことをしたいのですか?さて、私は最初に配列として渡された引数を解凍したかったのです。*
Pythonの" "演算子と同じように:
SOを掘り下げて、「apply()」を使用するように指示する投稿を見つけました。
オブジェクト内の場合は現在の「this」を使用し、そうでない場合は「window」を使用するため、興味深いものです。
しかし、私は問題があると思います:
「bar()」自体がオブジェクト内にある場合、「this」は「bar()」コンテナを参照するため、動作しません。
ところで、スコープをパラメーターとして渡さないようにしたいと思います。
もちろん、引数と関数を文字列として連結してevalを使用することもできますが、これは、よりクリーンなものが見つからない場合にのみ使用したいと思います。
もちろん、それが不可能な場合(結局のところ、それは可能性があります)、私はします:
編集2:コメントで尋ねられた完全なシナリオ。
私はqunitを使用してJavascriptでユニットテストを実行しています。かっこいいですが、何かが例外を発生させるかどうかを確認する方法がありません。
最も基本的なテストはそのように行われます:
アイデアは次のようなものを作ることです:
私がevalを取り除くことができれば、それは素晴らしいことです。そして、なぜスコープをパラメーターとして使用したくないのですか?手作業で作成するのではなく、スコープの異なる20個の関数を参照するコンテナーをループして、それらすべてをループ内でテストしたい場合があるためです。
java - Java での this キーワードのその他の使用法
(私の前の質問を読んだ方へ、これは同じ先生で同じプロジェクトです。)
私の先生は、Web アプリケーション プロジェクトの私のコードを「検査」し、いくつかの提案をしてくれました。提案の 1 つは、this
この状況でもキーワードを使用することでした。
したがって、彼のアドバイスに従うと、次のようになります。
その理由を尋ねると、あいまいさを解消する以外にも this キーワードには別の使い方があるとのことでした。this キーワードの別の使用法については、簡単なグーグル検索では結果が返されませんでした。Sunの Java チュートリアルでさえ、この状況に適合する他の使用方法について言及していません。
javascript - Javascript: OOP メソッドをイベントと 'this' キーワードにアタッチする
OOP Javascript は初めてで、this
キーワードとイベントに問題があります。
私が達成しようとしているのは、複数の DOM オブジェクトがあり、それらに共通のイベントをバインドするだけでなく、前述のオブジェクトに関するデータをグローバル コンテナーに保持したい (実行時のパフォーマンスを向上させるため) ことです。
だから私がやっていることは基本的にこれです:
後で、ドキュメントの本文に次のように追加できます。
さらに、次の方法で DOM 要素を追加します。
これ以上の実装コードは必要ありません。
質問: window 要素ではなくおよびメソッドでJS クラス インスタンスにアクセスする。init
scroll
キーワードである必要はありませんがthis
、それでも何も思いつきませんでした。
PS
addEvent
イベントをアタッチするための非常に基本的な関数です。IE/Fx に適しているだけで、他には何もしません。- 私が書いているコードはすでに機能していますが、手続き型の形式で、OOP したかっただけです。
- マイナーなサブ質問として、getter/setter メソッドは javascript では推奨されていないという印象を受けましたが、使用しても問題ありませんか?
c++ - クラス内の「this」ポインタ
質問は簡単です... this->yourvariable または yourvariable を何らかの理由で直接使用することに違いはありますか?
私はそれで問題を見つけていませんが、私はこれを使用しています->多く、さらに先に進む前に違いがあるかどうかを知りたい.
ここの投稿にコメントがあり、どのスレッドかは覚えていませんが、その人は「これ」というキーワードの使用について何か言っていました。
個人的には、変数を直接使用するよりも使いやすいと思います。コードがより簡単できれいになります。
ジョー
java - Drools に表示される this[''] アクセサーとは
Droolsでパラメータを getter に渡す方法を探しているだけです ...
Eclipse Ganymede で、Drools の WHERE 句でエンティティを選択するために使用できるゲッターを決定する際に、インテリセンスが役立つことに気付きました。文字を入力して ctrl+Space を押すと、リストが表示されます。Drools.NETに、get メソッドではなく C# プロパティに依存する 別のプロジェクトがあります。C#.NETでは、デフォルト プロパティ as を定義public String this[String key]
できるため、プロパティ as なしでリストを参照できます。myInstance["myKeyString"]
私はこれをDrools.NETで使用しました。Java Droolsで WHERE 句エンティティ セレクターのカーリーの間にthis['']
表示されるオプションが、似たようなものを参照することを期待していました。myInstance : myClass { ... }
これは本当ですか? もしそうなら、どのように使用すればよいですか?
c++ - 派生クラス内のクラスの保護されたメンバーにアクセスする
ここに古いコードベースがあり、保護されたメンバー変数を使用していました。これが良いアイデアであるかどうかは、議論することができます。ただし、コードは gcc3 で正常にコンパイルされている必要があります。クラステンプレート Foo から保護されたメンバー x を使用する派生テンプレートクラス Bar があります
また、cleanup() のメソッド宣言では、x で何かが行われています。
これは、gcc3 では機能するはずでしたが、gcc4 では機能しません。に変更すると動作します
なぜそうなのですか?
jquery - jqueryで$(this)を決定する
私が抱えている一般的な問題は、 $(this) が何を指しているのか混乱することです。
私はしばしばそれにいくつかの奇妙なスタイルを与えようとします:
これは時々役立ちます。
しかし、私は次のことに困惑しています。私の質問には、次の 2 つの方法で答えることができます。
1) 任意の状況で $(this) が参照しているものを「見る」普遍的な方法はありますか? おそらくfirebugと組み合わせて?
2) より具体的には、以下のサンプルで $(this) が何を参照する必要があるか考えていますか? 私はそれが btnSave のクラスの入力だったと思いましたが、そうではないようです:
this - Ada に「this」キーワードはありますか?
具体的には、タスクが自身への参照を取得する方法はありますか?
例えば:
php - $ this-> function()と$ this-> variable(PHP)があるのに、なぜself :: function()と$self->variableまたはself::$ variableなのですか?
これらの2つのキーワードと、PHP5での使用方法について混乱しています。「this」はインスタンス化されたオブジェクト(静的ではない)に使用され、「self」はオブジェクトのインスタンスではなくオブジェクト自体を参照しているため、静的オブジェクト内で使用されていると思います。右?
ここで、クラスの静的メソッド内で別の静的変数/メソッドを呼び出すための正しい使用法は次のとおりです。
それは本当だ?
ただし、次のことも可能であるようです。
それでも、$testVarは静的です。何故ですか?
また、なぜ$が自己の前で使用されることもあれば、使用されないこともあり、「this」キーワードについても同じ質問がありますか?