問題タブ [class-eval]

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

ruby - 関数が最初に呼び出されたときにのみ配列を初期化するにはどうすればよいですか?

配列内のすべての書き込みの履歴を記録するattrアクセサーを作成したいのですが、問題はclass_evalにあり、配列は毎回初期化されるため、古い値を保持しません。

どのような変更を行う必要がありますか?

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

ruby - Ruby でのクラスの拡張 (def と class_eval)

class_eval (コードに変換する文字列を取る) のように見えますが、新しい def メソッドでクラスを宣言することは、本質的に同じことです。

それらは本当に同等ですか?それぞれの長所と短所は何ですか?

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

ruby - class_evalとinstance_eval

class_eval方法とinstance_eval動作に違いはありますdefか?Insideclass_evalブロックdefは、それ自体をクラス化するメソッド(つまり、インスタンスメソッド)をinstance_eval def定義し、insideは、クラスの固有クラス(つまり、クラスメソッド)にメソッドを定義します。AFAIKの他のすべての機能は、どちらの場合も同じように機能します(たとえば、、、、define_method定数attr_accessorclass << self; end定義)。それは本当ですか?

答えはdefundefであり、とaliasのコンテキストが異なります。class_evalinstance_eval

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

ruby - class-eval ブロッ​​ク内の正規表現エラー

REST クライアントのラッパー クラスを介してリモート リソースと通信するための単純な定義から、モジュールにメソッドを追加するためのコードがいくつかあります。

コードを実行する前に、IRB にビルドしている gem を要求するだけで、次のエラーが発生します。

問題のある行は次のとおりです。

「#{uri}」引数を削除すると、「#{method}」引数を残しても修正されます。これがなぜなのかについての手がかりを持っている人はいますか?私はもう途方に暮れています。

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

ruby - Ruby メタプログラミング: @variables を既存の「initialize」メソッドに追加する (class_eval を使用)

重複の可能性:
Ruby.Metaprogramming. class_eval

私はこの小さなプロジェクトを持っています。目標は、作成された変数に割り当てられたすべての値の記録を保持する「attr_accessor_with_history」メソッドを作成することです。コードは次のとおりです。

ここで、1 つの変数についてスクリプトをテストします。それは正常に動作します。しかし、2 つ以上の変数を作成しようとすると (このように) ....

....Ruby は、「(class_eval) bar_history.push(new_value) に対して存在しない 'push' メソッド」を発行します。attr_accessor_with_history の 2 回目の呼び出しで「initialize」メソッドがオーバーライドされるため、最初の変数のレコードが破棄されると思います。

これを回避する方法がわかりません。私はすでに 'super' を呼び出してみました。どんな手掛かり ?

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

ruby - マップ演算子を含むこのRuby行を解読できません

私はruby-trelloでRubyコードのこの行を見たところです:

これは、次のように定義されたスーパークラスメソッドに関連しているようです。

class_evalがリフレクションに関連していることを理解しています。

誰かがサブクラスのコード行の目的を説明してもらえますか?

私の推測では、名前としてone渡さ:member_creatorれるクラスメンバーと、引数として2つの末尾の引数を呼び出していると思いoptsます。しかし、なぜこれがクラスレベルで呼び出されるのでしょうか。

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

ruby - class_evalに関するRubyの問題

私は以下を実行しようとしていますが、私は取得し続けます

"NoMethodError:#/ Foo:0x86f69ba/の未定義のメソッド`bar ='"

私は実際にこの投稿に似たものを使用しています:Ruby-class_evalを使用してメソッドを定義する

編集:あなたはまったく正しいです私はこれを反映するために変更を加えました..どうもありがとう。

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

ruby - class_eval を使用したメソッドの作成

1 つのパラメーターを取り、このパラメーターで名前を付けた別のメソッドを作成するメソッドを作成したいと考えています。これが私のコードです

残念ながら、 にrespond_to?(:foo)評価されfalseます。どうしたの?

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

ruby - attr_accessorを持つクラスのRubyinstance_eval

との基本的な違いを理解していinstance_evalますclass_eval。遊んでいるときに私が発見したのは、何か奇妙なことattr_accessorです。次に例を示します。

どうですか:

  1. instance_evalは、アクセサでAクラス(オブジェクト)にアクセスしませんでした
  2. それから実際にそれをAのインスタンスに追加しましたか?