javascript - 如何获取调用函数的 'this' 值?

标签 javascript function scope this

如果我有这样的功能:

function foo(_this) {
    console.log(_this);
}

function bar() {}
bar.prototype.func = function() {
    foo(this);
}

var test = new bar();
test.func();

然后 bartest 实例被记录。

但是,要使其正常工作,我必须在 bar.prototype.func 函数中传递 this。我想知道是否有可能获得相同的 this而不传递 this

我尝试使用 arguments.callee.caller,但这会返回原型(prototype)函数本身,而不是原型(prototype)函数内的 this 值。

是否可以仅通过在原型(prototype)函数中调用 foo() 来记录 bartest 实例?

最佳答案

如果问题是“没有通过这个(以任何方式)”那么答案是

不过,值可以通过其他方法传递。例如使用全局变量(在 Bar 类中) 或 session 或 cookie。

    function bar() {

      var myThis;

      function foo() {
          console.log(myThis);
      }

      bar.prototype.func = function() {

          myThis = this;
           foo();
      }
   }

   var test = new bar();
   test.func();

关于javascript - 如何获取调用函数的 'this' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332017/

相关文章:

javascript - 你能在箭头函数中绑定(bind) 'this' 吗?

jquery函数插件,返回值类似于ajax中的$.get

c - 为什么在文件范围内初始化枚举类型变量时出现错误?

javascript - Bootstrap 工具提示不显示工具提示的样式,仅显示数据

javascript - 如何将表单输入传递到 javascript iframe URL?

javascript - Cucumberjs 数据表 - 如何将其转换为 .raw()

python - 在 C 中,如何在没有嵌套函数的情况下为一个函数提供另一个函数的作用域?

javascript - 如何正确确定此 "public"方法的范围?

javascript - 如何构造 javascript 回调以便正确维护函数范围

javascript - 将 html 作为对象插入到没有滚动条的 html 中