Javascript Object Constructor获取名为constuctor的变量名

时间:2016-09-20 21:29:08

标签: javascript function object constructor

这可能是不可能的,但无论如何我还是要问。

如果我有一个类似的构造函数:

function CS_Sidekick() {
   //do whatever
}
var foo = new CS_Sidekick();

从CS_Sidekick构造函数内部可以找出调用构造函数的变量,在这种情况下我想得到foo。

类似

function CS_Sidekick(){
   //return foo since that's the variable that called it
}

1 个答案:

答案 0 :(得分:2)

  

从CS_Sidekick构造函数内部有任何方法可以搞清楚   调用构造函数的变量,在这种情况下我想得到   FOO。

不,没有。 CS_Sidekick()构造函数不知道调用代码将对生成的新实例执行什么操作。

你真的需要描述你实际想要解决的问题,因为你的评论没有意义:

function CS_Sidekick(){
   //return foo since that's the variable that called it
}

当有这样的代码时:

var foo = new CS_Sidekick();

foo运行时尚未设置CS_Sidekick()的值,因此CS_Sidekick()尝试返回foo毫无意义。 foo还没有价值。此外,来电者代码的全部要点:

var foo = new CS_Sidekick();

是为变量foo分配CS_Sidekick()的新实例。如果这不是调用者想要的,那么调用者需要将他们的代码更改为其他内容。

new CS_Sidekick();应该返回CS_Sidekick对象的新实例。这就是应该做的。

P.S。

如果您希望CS_Sidekick()构造函数知道它的调用者,那么您可以将其作为参数传递给构造函数。没有自动方法从构造函数中检索有关调用环境的信息。