問題タブ [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.
javascript - Javascript のスコープ チェーン
Javascript でスコープ チェーンを読んだことがありますが、意味がわかりませんでした。スコープ チェーンとは何か、それがグラフィックやばかでも理解できるものでどのように機能するかを教えてください。私はそれをグーグルで検索しましたが、わかりやすいものは見つかりませんでした:(
scope - スコープ チェーンを出力する関数またはメソッドが組み込まれている言語 (またはデバッグ ツール) はありますか?
スコープチェーンに含まれるもののさまざまな状況を調べるために、スコープチェーンを検査用に出力する方法を備えた言語またはデバッグツールはありますか?
ruby - Rubyの「束縛」はScope Chainと同じ?
Rubyは次のeval()
ようになります
ここで、block は関数に渡されるブロックです。
ブロックの代わりに、バインディング オブジェクトを渡すこともできます。バインディング オブジェクトは、Javascript クロージャーが議論されるときによく言及される「スコープ チェーン」と呼ばれるものと同じですか?
ruby-on-rails - ActiveRecordのポリモーフィックモデルの親の属性で注文する方法は?
私はそれを正しく表現したと思います...
私は資産と呼ばれるポリモーフィックなモデルを持っています:
スコープとして機能するクラス レベルのメソッドがあります。
親のapproved_at
属性がnullではないアセットのリストを取得しようとしていapproved_at
ます.50の制限でその属性で降順で並べ替えます.私が持っているものがどれだけ正しいかはわかりませんが、私が今得ているエラーは次のとおりです。
c# - C# と VB のラムダには、javascript に似た **スコープ チェーン** の問題がありますか?
F のスコープ内で宣言されていない関数 F 内の変数 V を参照したい場合、javascript でスコープ チェーンがどのように機能するかにより、(パフォーマンスの点で) 宣言することが有益であることを読みました。 V を参照する F のローカル変数 V2 を呼び出し、V2 を介して V によって参照されるオブジェクトにアクセスします。
この概念が C# と VB のクロージャーに適用されるかどうか疑問に思っています (ラムダを介して関数内のローカル変数にアクセスする)
ところで、答えが時期尚早ではない場合、私は好むでしょう最適化はすべての悪の根源です
javascript - スコープチェーンを保持しながら、コールバック関数を文字列として渡す
UIWebViewを使用するiPadアプリの場合、次のURLでコールバック関数をアプリに渡します。
アプリはURLからコールバック関数を解析し、stringByEvaluatingJavaScriptFromStringを介して挿入されたデータを使用してコールバック関数を呼び出します。これはすべて正常に機能しています。
ただし、次のように、コールバック関数でクロージャを使用したいと思います。
これには問題があります。コールバック関数は文字列に変換されるため、すべてのスコープチェーン情報が失われます。
この問題を解決する方法について何か提案はありますか?
編集:
'query'関数側のソリューションをお勧めします。例:スコープチェーン内の変数をeval()可能な文字列に変換する方法はありますか?
activerecord - 多対多の関係のためのスコープの作成
賃借人、部門、基準の3つのモデルのアプリケーションがあります。
と
レンターモデルで2つのスコープを作成して、部門別および基準別に賃借人を検索できるようにしようとしています。
これが私が持っているコードです:
使用する
また
単独で動作します。しかし、私がそれらを連鎖させようとすると、
次のようなエラーが発生します。
さらに、
私が間違っていることについて何か考えはありますか?
javascript - JS でスコープ チェーンを強制的に上に移動する
Javascriptでスコープ チェーンの次のオブジェクトを参照する方法はありますか?
たとえば、次のようになります。
javascript - クロージャ定義のスタックをキャプチャする方法ですか?
私は現在、JavaScript 関数をprivateとして保護する方法を研究しています。呼び出し元が無効な場合、例外がスローされます。次に、ここで問題があります。クロージャーが有効な呼び出し元の内部で定義されている場合、それは内側のクロージャーから有効な呼び出し元を取得する方法ですか?
例えば:
もちろん、privateFunction1
呼び出し元validCaller
を正しくprivateFunction2
取得しますが、匿名関数を呼び出し元として取得するため、アクセスは拒否されます。
式 によってコール スタックから validCaller を取得するのは正しい方法ではありません。caller.caller.caller
トレース バックする必要があるレベル数を判断できないためです。また、いくつかの特別なケースでは、無名関数を の外で呼び出す必要がありvalidCaller
ます。
複雑な方法で質問したのかもしれませんが、簡単な方法は次のとおりです。
関数のスコープ チェーンをキャプチャするにはどうすればよいですか?