首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript查找原型链的开始

Javascript查找原型链的开始
EN

Stack Overflow用户
提问于 2010-02-06 08:11:42
回答 2查看 145关注 0票数 2

如果我将一个函数设置为Object.prototype,并尝试从object Foo调用该函数,有没有办法让该函数知道最初调用它的是哪个对象?

代码语言:javascript
复制
Object.prototype.MyFunc = function () {
    console.log("I was called by " + (//object name here...));
}

Foo = {};
Foo.MyFunc();

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-06 08:34:55

这是不可能的,因为对象是对象,多个变量可以引用同一个对象,除非显式完成,否则变量名不会存储在对象上。

当然,您可以使用this引用手头的对象,但除非执行类似..的操作,否则无法获取变量。

代码语言:javascript
复制
Object.prototype.alertName = function() {
    alert( this.name )
}

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

names[0].alertName()
票数 1
EN

Stack Overflow用户

发布于 2010-02-06 08:29:24

据我所知,不可能获得实际的对象名称(即var名称)。

但是,您可以使用this引用在其上调用该函数的对象。

代码语言:javascript
复制
Object.prototype.MyFunc = function() {
 this.foo = 'bar';
}

MyObject = {};
MyObject.MyFunc();
MyObject; // Object { foo = 'bar' }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2211364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档