問題タブ [this-pointer]
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.
c++ - *this を参照として返しても安全ですか?
このオブジェクトへの参照を返すことは、代入演算子のオーバーロードでよく使用されます。また、setter メソッドへの一連の呼び出しによってオブジェクトを初期化できるようにする名前付きパラメーター イディオムのベースとしても使用されます。Params().SetX(1).SetY(1)
各メソッドは *this への参照を返します。
しかし、への参照を返すのは正しいですか*this
。一時オブジェクトの this への参照を返すメソッドを呼び出すとどうなるでしょうか。
javascript - jQuery(this) 奇妙な伝搬バグ?
一部の人々にとって、この質問は明確ではないようです。
望ましい効果:
マウスが上にある要素のクラスを削除します。
問題:
jQuery(this) を使用して要素を指している場合でも、クラスの削除は同じクラスのすべての要素に影響します。
私は次のhtmlを持っています:
そして、このjQuery:
コメント行に到達するまで、すべてが正常に機能します。remove class とそれに続くアクションは、jQuery(this) に適用される代わりに、class .rater を持つすべての要素に適用されます。
この行を削除すると、スクリプトは期待どおりに機能します。
競合する行に関して私が試したこと:
イベントを別の方法で添付するために試したこと
このアクションのどれも問題を解決していません。
c++ - クラスの this ポインターをメンバー共有ポインターに保存する方法はありますか
私はこのような構造を持っています:
フー。
Foo.inl
基本的に私がやろうとしているのは、 add 関数を使用して同じタイプの任意のオブジェクトを渡すことです。要素数が 256 要素に達し、渡されたその型のスマート ポインターの内部配列がいっぱいになったら、このクラスのインスタンス化されたオブジェクトの現在のインスタンスを保存し、それをベクターにプッシュし、渡される次のオブジェクトは新しいオブジェクトに属します。または次のインスタンスが作成されますが、それ以降のすべてのインスタンスは依然として元のオブジェクトの一部です。したがって、256 の各配列が満たされると、いわばリンクされたリストのように機能しますが、それはより連鎖的な効果です。このインスタンスの現在の状態を保存することに行き詰まっています。
c++ - 次の C++ コードで 'new' 演算子を使用する必要がありますか?
コードは次のとおりです。
new
関数で演算子を使用する必要がありますcopy()
か、またはコードでnew
演算子を使用する理由は?
this
次のように、ポインターを直接返す必要があります。
c++ - このポインターへの参照: GCC vs clang
次のコードを検討してください。
でコンパイルすると、GCC v6.2 とclang v3.9の-Wextra
両方で警告が表示されます。
とにかく、以下に示すわずかに変更されたバージョンでは、動作が異なります。
この場合、GCCは警告を出さず、clangは前の例で返されたのと同じ警告を出します。
警告はほぼ同じです。
それはclangのものに従います:
3 : 警告: 参照メンバー 'this_ref' を一時的な値 [-Wdangling-field] にバインドしています
どのコンパイラが正しいですか?
この場合、GCC は間違っていると思います。私は問題を提起していましたが、言語の不可解なコーナー ケースのため、逆かもしれません。
javascript - コールバック関数の「this」は呼び出し元を参照していませんが、ウィンドウ obj を参照していますか?
「これ」について何百万もの Q&A があることは知っていますが、それでもこれは、何度も読んだり考えたりした後でさえ、理解できないものです。次の例を検討してください。
(Setfanovによる「Javascriptパターン」を引用)
... findNodes() はグローバル関数であるため、オブジェクト「this」は GLOBAL OBJECT を参照します...
しかし、「これ」はそれを呼び出している人 (この場合は findNodes() 関数) にバインドされるべきではないでしょうか?
c++ - std::vector を継承するクラス内で operator[] を使用する
動作しません
ただし、に置き換える*this[0]
とat(0)
機能します。私はそれがそうであるように、型ではなく*this[0]
型のオブジェクトを返すのは非常に奇妙だと思います。この例では、それらは同じように機能するはずではありませんか?A
int
at(0)