在 JavaScript 中获取调用类 [重复]

Posted

技术标签:

【中文标题】在 JavaScript 中获取调用类 [重复]【英文标题】:Get the calling Class in JavaScript [duplicate] 【发布时间】:2014-03-11 00:17:37 【问题描述】:

是否可以让类在 javascript 中调用函数?

例如:

function Foo()
this.alertCaller = alertCaller;

function Bar()
this.alertCaller = alertCaller;


function alertCaller()
    alert(*calling object*);

当调用 Foo().alertCaller() 时,我想输出类 Foo(),当调用 Bar().alertCaller() 时,我想输出 Bar()。有什么办法可以做到吗?

【问题讨论】:

caller... 但在严格模式下无效。 是的,我知道没有解决方法? @kei 不,我在这里尝试做不同的事情。 JavaScript 什么时候有了类? ;) 【参考方案1】:

试试这个:

function alertCaller()
    alert(this.constructor);

【讨论】:

这将显示当前对象类而不是调用者的【参考方案2】:

你真的应该使用严格模式

What is strict mode ?

我建议你不要做你想做的事。

可能有更好的设计可以满足您的需求。


如果你还想得到调用者

如果您没有启用严格模式

,这就是您所使用的
function alertCaller()
    alert(arguments.callee.caller);

【讨论】:

【参考方案3】:

如果我理解你的话..

function Foo()
    this.alertCaller = alertCaller;

function Bar()
    this.alertCaller = alertCaller;

Foo.prototype.alertCaller = function()  alert('Foo'); 
Bar.prototype.alertCaller = function()  alert('Bar'); 
foo = new Foo();
foo.alertCaller(); 
Bar= new Foo();
Bar.alertCaller();

【讨论】:

这也是只将变量传递给某些函数的好方法!谢谢!

以上是关于在 JavaScript 中获取调用类 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript - 获取调用对象[重复]

在ES6 JavaScript中调用类时,为什么我得到null值? [重复]

PHP动态获取类构造函数并调用它来创建一个新实例[重复]

javascript - 通过函数获取函数名称[重复]

在 C# 中的类构造函数中调用异步方法 [重复]

如何从javascript中的函数返回值[重复]