获取函数执行上下文

时间:2018-06-18 16:41:45

标签: javascript function

我有一个函数foo

function foo() {
   return 'foo';
}

虽然执行了foo,但是有一种方法可以知道在对象声明中是否调用了foo吗?我想区分这两种情况:

var bar = {
   prop1: foo()
}

var var1 = foo();

1 个答案:

答案 0 :(得分:0)

以下是一种方法,可以在评论中展示建议,并假设您宁愿拨打bar.prop1而不是bar.prop1()

function foo (ctx) {
  console.log(ctx == window)
  return 'foo'
}

class Bar {
  get prop1() {
    return foo(this)
  }
}

var var1 = foo(this);

var bar = new Bar();
bar.prop1;