5
function define(prop, value) {
    Object.defineProperty( /* context of caller */ , prop, {value: value});
}

function F() {
    define('x', 42);
}

var f = new F();

呼び出し元の関数のコンテキスト (上記のコードでコメントされているインライン) を取得する方法はありますか?

これにバインドし(コメントを に置き換えますthis)、Fコンストラクター内で宣言すると、正常に動作しますvar def = define.bind(this);

4

1 に答える 1

4

関数/オブジェクトを呼び出すコンテキストを取得するには?

できません。define関数で明示的に使用できるようにする必要があります (引数として渡すなど)。

そして、これは良いことです(tm) . :-) 呼び出し元のコンテキストにアクセスし、制御されていない方法で物事を変更する関数は、最後に必要です。

于 2013-06-30T17:41:05.377 に答える