問題タブ [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 投票する
8 に答える
69783 参照

jquery - jQuery イベントで「this」の値を制御する

jQueryを使用して「コントロール」を作成し、jQuery.extendを使用して、可能な限りOOにするのを支援しました。

コントロールの初期化中に、さまざまなクリックイベントを次のように接続します

bind メソッドの data 引数として「this」を渡していることに注意してください。これは、クリック イベントを発生させる要素からではなく、コントロール インスタンスに添付されたデータを取得できるようにするためです。

これは完全に機能しますが、もっと良い方法があると思います

過去に Prototype を使用したことがあるので、イベント内の「this」の値を制御できるバインド構文を覚えています。

jQueryのやり方とは?

0 投票する
23 に答える
26605 参照

oop - 手続き型プログラミングにはOOPに勝る利点がありますか?

[編集:]以前、私はこれを、OOPを使用する場合と手続き型プログラミングを使用する場合について、おそらくフレームが不十分な質問として質問しました。一部の回答は、OOPの理解に役立つことを求めていたことを意味します。それどころか、私はOOPをよく使用しましたが、手続き型アプローチをいつ使用するかを知りたいと思います。回答から判断すると、OOPは通常、より優れたオールラウンドなアプローチであるが、OOPアーキテクチャが長期的に再利用のメリットをもたらさない場合は、手続き型言語を使用する必要があるというかなり強いコンセンサスがあると思います。

しかし、Javaプログラマーとしての私の経験はそうではありませんでした。私が設計した大規模なJavaプログラムは、私が作成したコードの1/10で、Perlの第一人者によって書き直され、OOPの完全性のモデルと同じくらい堅牢に見えました。私のアーキテクチャでは、かなりの量の再利用が見られましたが、より簡潔な手続き型アプローチによって優れたソリューションが生み出されました。

ですから、繰り返しになるリスクを冒して、オブジェクト指向のアプローチではなく、どのような状況で手続き型を選択すべきか疑問に思っています。OOPアーキテクチャが行き過ぎであり、手続き型アプローチがより簡潔で効率的である可能性が高い状況を事前にどのように特定しますか。

誰かがそれらのシナリオがどのように見えるかの例を提案できますか?

手続き型プログラミングアプローチによってより適切に提供されるプロジェクトを事前に特定するための良い方法は何ですか?

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

asp.net - UpdatePanel の有無にかかわらず、Repeater 内のスコープを制御します

次のコマンドを実行すると、行 B (Label2、UpdatePanel の外側) ではコンパイル エラーが発生するのに、行 A (Label1、UpdatePanel の内側) ではエラーが発生しないのはなぜですか? 両方のコントロールが同じリピーター内にあり、一意のインスタンスが 1 つもないため、リピーターの外部から直接アクセスできないため、両方の行でエラーが発生すると予想していました。

0 投票する
12 に答える
11799 参照

python - Pythonで新しいスコープを作成するにはどうすればよいですか

多くの言語 (および場所) では、このようなブロックを作成してローカル スコープを作成するという優れた方法があります。

予期しないインデントエラーが発生せず、何らかのif True: トリックを使用せずに、Python でこれを実装するにはどうすればよいですか?

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

c++ - グローバル変数とスコープ - C++

グローバル変数を機能させるのに小さな問題があります。Visual Studio 2008 と標準の C++ を使用しています。

私は 2 つのプロジェクトを持っています。1 つは静的ライブラリで、もう 1 つはこのライブラリを使用するテスト プログラムです。global.h にグローバル変数があります

この変数を初期化する global.cpp があります。この変数は、ライブラリ プロジェクト内で使用されます。テスト プロジェクトからこの変数に値を設定していますが、その値がライブラリ プロジェクトに反映されていません。

デバッグしたところ、テスト プロジェクトに新しい値が表示されましたが、コントロールがライブラリ プロジェクトに到達すると、この変数の値は空と表示されます。このグローバル変数のスコープは、それが属するプロジェクトにのみ限定されていますか?

または、これを行うより良い方法はありますか?この値を渡すために、ライブラリ内の関数またはコンストラクターのパラメーターを変更したくありません。

どんな助けでも素晴らしいでしょう。

編集:

この変数が global.cpp でどのように宣言されているかを次に示します。

これは私のライブラリでそれを使用した方法です

ありがとう

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

php - PHP:foreachループの範囲を超えて持続する配列の変更

ネストされたforeachループ内の既存の配列に新しいキーと値のペアを追加し、そのペアをループのスコープ外に保持するにはどうすればよいですか?

ありがとう

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

javascript - Greasemonkey スクリプトと関数のスコープ

ここに私のスクリプトコードがあります:

私が抱えている唯一の問題は、Hello World をクリックすると、ページで test() 関数が見つからないことです。このようにページに関数をinnerHTML'ingすることで解決する必要はないことを教えてください。別の方法はありますか?

ありがとう。

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

python - Pythonのtimeitで「グローバル名「foo」が定義されていません」を取得する

Python ステートメントの実行にかかる時間を調べようとしているので、オンラインで調べたところ、標準ライブラリがtimeitと呼ばれるモジュールを提供していることがわかりました。

ただし、これによりエラーが発生します。

私はまだ Python を使い始めたばかりで、スコープの問題をすべて完全に理解していませんが、なぜこのスニペットが機能しないのかわかりません。何かご意見は?

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

jquery - JQuery の $.each 関数でグローバル変数を編集するにはどうすればよいですか?

わかりました、そのタイトルはおそらく私の質問をうまく説明していません。うまくいけば、これは理にかなっています。これは jQuery を使用した初めてのアプリケーションでもあります。

私は次の機能を持っています:

getJSON は JSON オブジェクトを正しく取得しています。次のようなものが返されます。

私はデバッグを行っていましたが、JSON オブジェクトから取得したイメージ パスが data[i] に正しく含まれていると確信しています。しかし、getRandomImages() が呼び出された後、グローバル imagesArray を確認すると、何も変更されていないことがわかります。実際のイメージを取得するのではなく、imagesArray のコピーを作成していると思います。

グローバル imagesArray が $.each ブロックで更新されるようにするには、何をする必要があるか教えてもらえますか? どういうわけか参照によって imagesArray を渡す必要がありますか? 申し訳ありませんが、私は少し迷っています。

助けてくれてありがとう。

編集:いくつかの背景情報。DB からランダムな画像の場所の配列を設定しています。画像が多すぎるため、データベースから配列にすべての画像を一度にロードしたくありません。そのため、画像配列のどこにいるかを追跡するカウンターがあります。画像の処理が完了したら、ポインターを次の画像に移動します。最後に到達したら、さらにランダムな画像を取得する必要があります。ここで、上記の js 関数が呼び出されます。これは、db から x 個のランダムな画像を取得して配列を返す createImageArray.php を呼び出します。次に、これらの画像の場所をグローバル imagesArray に格納します。

.getJSON の非同期性を考慮してコードを再構築する方法がわかりません。