問題タブ [scope-chain]

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 投票する
6 に答える
33758 参照

javascript - Javascript のスコープ チェーン

Javascript でスコープ チェーンを読んだことがありますが、意味がわかりませんでした。スコープ チェーンとは何か、それがグラフィックやばかでも理解できるものでどのように機能するかを教えてください。私はそれをグーグルで検索しましたが、わかりやすいものは見つかりませんでした:(

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

scope - スコープ チェーンを出力する関数またはメソッドが組み込まれている言語 (またはデバッグ ツール) はありますか?

スコープチェーンに含まれるもののさまざまな状況を調べるために、スコープチェーンを検査用に出力する方法を備えた言語またはデバッグツールはありますか?

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

ruby - Rubyの「束縛」はScope Chainと同じ?

Rubyは次のeval()ようになります

ここで、block は関数に渡されるブロックです。

ブロックの代わりに、バインディング オブジェクトを渡すこともできます。バインディング オブジェクトは、Javascript クロージャーが議論されるときによく言及される「スコープ チェーン」と呼ばれるものと同じですか?

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

ruby-on-rails - ActiveRecordのポリモーフィックモデルの親の属性で注文する方法は?

私はそれを正しく表現したと思います...

私は資産と呼ばれるポリモーフィックなモデルを持っています:

スコープとして機能するクラス レベルのメソッドがあります。

親のapproved_at属性がnullではないアセットのリストを取得しようとしていapproved_atます.50の制限でその属性で降順で並べ替えます.私が持っているものがどれだけ正しいかはわかりませんが、私が今得ているエラーは次のとおりです。

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

c# - C# と VB のラムダには、javascript に似た **スコープ チェーン** の問題がありますか?

F のスコープ内で宣言されていない関数 F 内の変数 V を参照したい場合、javascript でスコープ チェーンがどのように機能するかにより、(パフォーマンスの点で) 宣言することが有益であることを読みました。 V を参照する F のローカル変数 V2 を呼び出し、V2 を介して V によって参照されるオブジェクトにアクセスします。

この概念が C# と VB のクロージャーに適用されるかどうか疑問に思っています (ラムダを介して関数内のローカル変数にアクセスする)

ところで、答えが時期尚早ではない場合、私は好むでしょう最適化はすべての悪の根源です

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

javascript - スコープチェーンを保持しながら、コールバック関数を文字列として渡す

UIWebViewを使用するiPadアプリの場合、次のURLでコールバック関数をアプリに渡します。

アプリはURLからコールバック関数を解析し、stringByEvaluatingJavaScriptFromStringを介して挿入されたデータを使用してコールバック関数を呼び出します。これはすべて正常に機能しています。

ただし、次のように、コールバック関数でクロージャを使用したいと思います。

これには問題があります。コールバック関数は文字列に変換されるため、すべてのスコープチェーン情報が失われます。

この問題を解決する方法について何か提案はありますか?

編集:

'query'関数側のソリューションをお勧めします。例:スコープチェーン内の変数をeval()可能な文字列に変換する方法はありますか?

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

activerecord - 多対多の関係のためのスコープの作成

賃借人、部門、基準の3つのモデルのアプリケーションがあります。

レンターモデルで2つのスコープを作成して、部門別および基準別に賃借人を検索できるようにしようとしています。

これが私が持っているコードです:

使用する

また

単独で動作します。しかし、私がそれらを連鎖させようとすると、

次のようなエラーが発生します。

さらに、

私が間違っていることについて何か考えはありますか?

0 投票する
6 に答える
1228 参照

javascript - JS でスコープ チェーンを強制的に上に移動する

Javascriptでスコープ チェーンの次のオブジェクトを参照する方法はありますか?

たとえば、次のようになります。

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

javascript - クロージャ定義のスタックをキャプチャする方法ですか?

私は現在、JavaScript 関数をprivateとして保護する方法を研究しています。呼び出し元が無効な場合、例外がスローされます。次に、ここで問題があります。クロージャーが有効な呼び出し元の内部で定義されている場合、それは内側のクロージャーから有効な呼び出し元を取得する方法ですか?

例えば:

もちろん、privateFunction1呼び出し元validCallerを正しくprivateFunction2取得しますが、匿名関数を呼び出し元として取得するため、アクセスは拒否されます。

式 によってコール スタックから validCaller を取得するのは正しい方法ではありません。caller.caller.callerトレース バックする必要があるレベル数を判断できないためです。また、いくつかの特別なケースでは、無名関数を の外で呼び出す必要がありvalidCallerます。

複雑な方法で質問したのかもしれませんが、簡単な方法は次のとおりです。

関数のスコープ チェーンをキャプチャするにはどうすればよいですか?