2

関数を Object.prototype に設定し、オブジェクト Foo から関数を呼び出そうとした場合、関数が最初に呼び出したオブジェクトを知る方法はありますか?

Object.prototype.MyFunc = function () {
    console.log("I was called by " + (//object name here...));
}

Foo = {};
Foo.MyFunc();

ありがとう!

4

2 に答える 2

1

私の知る限り、オブジェクトはオブジェクトであり、複数の変数が同じオブジェクトを参照でき、明示的に行わない限り変数名はオブジェクトに保存されないため、不可能です。

もちろん、手元のオブジェクトを参照することはthisできますが、次のようなことをしない限り、変数を取得することはできません..

Object.prototype.alertName = function() {
    alert( this.name )
}

var names = [
  {name:'John'}
];

names[0].alertName()
于 2010-02-06T00:34:55.233 に答える
0

私の知る限り、実際のオブジェクト名 (変数名) を取得することはできません。

ただし、 を使用して、関数が呼び出されたオブジェクトを参照できますthis

Object.prototype.MyFunc = function() {
 this.foo = 'bar';
}

MyObject = {};
MyObject.MyFunc();
MyObject; // Object { foo = 'bar' }
于 2010-02-06T00:29:24.277 に答える