問題タブ [scope]

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.

0 投票する
3 に答える
4213 参照

c# - メソッドにパラメーター化された場合のC#変数とオブジェクトのスコープ

私は継承、ポリモーフィズム、カプセル化を広範囲に使用していますが、オブジェクトと変数のスコープに関する次の動作を知らなかったことに気付きました。違いは、次のコードで最もよく示されます。

したがって、変数がメソッドに渡されると、変更はメソッドのスコープに限定されると思いました。しかし、オブジェクトがメソッドに渡された場合、そのオブジェクトのプロパティが変更されると、メソッドを超えて拡張されるようです。

この動作が変数ではなくオブジェクトに対して存在するというルールである場合、これを受け入れることができますが、.netではすべてがオブジェクト、文字列です(例のようなものはSystem.Stringです)。メソッドに渡すパラメータのスコープ?

0 投票する
7 に答える
2880 参照

javascript - JavaScript のスコープとクロージャー

私は頭をクロージャーに巻き込もうとしています(どこかに冗談があります)、これに出くわしました:

これはどのように作動しますか?関数を括弧に入れる目的は何ですか? 後で空の括弧が表示されるのはなぜですか?

0 投票する
5 に答える
1574 参照

delphi - Delphi で範囲外になったオブジェクトはどうなりますか?

関数内でオブジェクトが作成され、関数が完了すると、オブジェクトが明示的に破棄されていない場合、オブジェクトはどうなりますか?

すべての変数は、スコープ外になったときに破棄する必要がありますか、それともスコープ外になったときに処理されますか?

たとえば、custom_function が呼び出された後、locallist はどうなるでしょうか?

0 投票する
4 に答える
521 参照

javascript - ようやくJavascriptのスコープを理解したと思ったとき

私は、明らかにまだ理解していないことを示す何かに出くわします。

以下で「this」の値が変化する理由を誰か説明してもらえますか?

0 投票する
1 に答える
70 参照

ruby - 私の例でこれが公にアクセスできるのはなぜですか: "MySymbol :: TABLE"

ブログで見つけた上記の例では、TABLEがハッシュであり、MySymbolクラスのメンバーであることを理解しています。私が理解していないのは、Stringクラス内からパブリックにアクセスする方法です。クラスインスタンス変数はデフォルトでプライベートであり、クラスの外部からそれらにアクセスするにはget / setメソッドを使用する必要があると思いましたか?

0 投票する
5 に答える
2316 参照

javascript - 関数の引数

ここで関数内では、変数fはローカルFoo(関数スコープを持っています) ですfが、引数リスト内の変数が競合していないのはなぜですか? Foo.argumentsオブジェクト内でバインドされているためでしょうか。

他の言語では、引数変数をローカル変数と同じ名前で宣言することはできません。

この名前のあいまいさはどのように解決されますか? fまたは、メソッドの後半で 2 つの異なる変数をそれぞれどのように参照しますか?

0 投票する
2 に答える
70887 参照

java - Javaでは、クラス内の列挙型は静的ですか?

内部クラスの内部からアクセスできるように、列挙型の内部から周囲のクラスのインスタンスメンバーにアクセスできないようです。それは列挙型が静的であることを意味しますか?周囲のクラスのインスタンスのスコープへのアクセスはありますか、それとも必要な場所でインスタンスを列挙型のメソッドに渡す必要がありますか?

0 投票する
3 に答える
1662 参照

c# - ASP.NET の静的内部クラスのスコープ

非静的クラスの 1 つの静的内部クラスのスコープがわかりません。

以下の行で、変数 DataContextCreator.Instance (Singleton パターンの一部) は、すべての Page オブジェクト/ページ要求に対して同じ PDataContext インスタンスを指しますか?それとも、各オブジェクトは独自のインスタンスを持ちますか?

これが望ましい方法で機能するためには、HttpContext.Current を使用する必要がありますか。つまり、共有 DataContext はありませんか? もしそうなら、別の方法はありますか?

(私が行ったように) 静的クラスをプライベートに変更することでうまくいくかどうかはわかりません。

ありがとう!

編集:これは、同じ遅延読み込み機能を備えていますが、静的変数がない私のソリューションです。この場合、保持変数の周りにミューテックス ロックを配置する必要はないと思います。

0 投票する
5 に答える
543 参照

perl - Perlでのスコープ変更に関するコードの延期

現在のスコープを離れるときに実行されるコードをスケジュールできると便利なことがよくあります。TCLでの私の前の人生で、友人がdeferと呼ばれる関数を作成しました。

次のようなコードが有効になりました。setfp[open"x"] defer( "close $ fp");

これは、現在のスコープが終了したときに呼び出されました。主な利点は、スコープを離れる方法や場所に関係なく、常に呼び出されることです。

だから私はPerlで似たようなものを実装しましたが、もっと簡単な方法があるようです。コメント批評を歓迎します。

私がPerlでそれをした方法:

  • 実行するサブの配列を保持するグローバルなタイ変数を作成します。
  • 終了時にfnが呼び出されるようにスケジュールするときはいつでも、localを使用して配列を変更します。現在のスコープを離れると、グローバルが関連付けられているため、Perlはグローバルを前の値に変更します。この値の変更がいつ発生するかを知っており、リスト内のサブを呼び出すことができます。

実際のコードは以下のとおりです。

これを行うためのより良い方法はありますか?これは一般的に必要な機能のようです。

0 投票する
1 に答える
362 参照

c++ - 親クラスのすべての変数をインポートします

gccの新しいバージョンでは、標準がより厳密になっていることに気付くかもしれません(この質問を参照してください) 。

テンプレートクラスの継承されたすべてのメンバーは、フルネームを使用して呼び出す必要があります。 ParentClass<T>::memberただの代わりにmember

しかし、それでも私はこれを尊重しない古いコードをたくさん持っています。using ParentClass<T>::member各クラスの使用済みメンバーごとに追加するのは非常に面倒です。のようなことをする方法はありusing ParentClass<T>::*ますか?g ++でこのチェックを非アクティブ化するよりも、これを有効にしたいと思いますが、現在方法がある場合、どうすれば非アクティブ化できますか?

編集

C ++ FAQ(sthに感謝)によると、これらは継承されたメンバー変数名を正しく解決する唯一の方法です:

  1. 呼び出しをからf()に変更しますthis->f()。これは常にテンプレートに暗黙的に依存しているため、this->f依存しているため、テンプレートが実際にインスタンス化されるまでルックアップは延期され、その時点ですべての基本クラスが考慮されます。

  2. 挿入using B<T>::f; を呼び出す直前f()

  3. 呼び出しをf()から。に変更しますB<T>::f()

だから今、フルネーム解決を非アクティブ化するための正しいスイッチを探しています...