如果我将一个函数设置为Object.prototype,并尝试从object Foo调用该函数,有没有办法让该函数知道最初调用它的是哪个对象?
Object.prototype.MyFunc = function () {
console.log("I was called by " + (//object name here...));
}
Foo = {};
Foo.MyFunc();谢谢!
发布于 2010-02-06 08:34:55
这是不可能的,因为对象是对象,多个变量可以引用同一个对象,除非显式完成,否则变量名不会存储在对象上。
当然,您可以使用this引用手头的对象,但除非执行类似..的操作,否则无法获取变量。
Object.prototype.alertName = function() {
alert( this.name )
}
var names = [
{name:'John'}
];
names[0].alertName()发布于 2010-02-06 08:29:24
据我所知,不可能获得实际的对象名称(即var名称)。
但是,您可以使用this引用在其上调用该函数的对象。
Object.prototype.MyFunc = function() {
this.foo = 'bar';
}
MyObject = {};
MyObject.MyFunc();
MyObject; // Object { foo = 'bar' }https://stackoverflow.com/questions/2211364
复制相似问题