関数を Object.prototype に設定し、オブジェクト Foo から関数を呼び出そうとした場合、関数が最初に呼び出したオブジェクトを知る方法はありますか?
Object.prototype.MyFunc = function () {
console.log("I was called by " + (//object name here...));
}
Foo = {};
Foo.MyFunc();
ありがとう!
関数を Object.prototype に設定し、オブジェクト Foo から関数を呼び出そうとした場合、関数が最初に呼び出したオブジェクトを知る方法はありますか?
Object.prototype.MyFunc = function () {
console.log("I was called by " + (//object name here...));
}
Foo = {};
Foo.MyFunc();
ありがとう!
私の知る限り、オブジェクトはオブジェクトであり、複数の変数が同じオブジェクトを参照でき、明示的に行わない限り変数名はオブジェクトに保存されないため、不可能です。
もちろん、手元のオブジェクトを参照することはthis
できますが、次のようなことをしない限り、変数を取得することはできません..
Object.prototype.alertName = function() {
alert( this.name )
}
var names = [
{name:'John'}
];
names[0].alertName()
私の知る限り、実際のオブジェクト名 (変数名) を取得することはできません。
ただし、 を使用して、関数が呼び出されたオブジェクトを参照できますthis
。
Object.prototype.MyFunc = function() {
this.foo = 'bar';
}
MyObject = {};
MyObject.MyFunc();
MyObject; // Object { foo = 'bar' }