如何在Javascript中检测函数的调用位置

时间:2016-11-03 12:02:28

标签: javascript function

我有这段代码

var Test = function(){
    this.prefix = function(prefix, callback){
        callback.call({pre: prefix})
    }
    this.log = function(stuff){
        console.log(this.pre, stuff);
    }
}

var tester = new Test();
tester.log('a'); // should log 'a' -> logs undefined, 'a'

tester.prefix('b', function(){
    console.log(this.pre) // -> logs 'b'
    tester.log('c'); // should log 'bc' -> logs undefined, 'c'
})
tester.log('d'); // should log 'd' -> logs undefined, 'd'

基本上,当我在前缀回调中运行tester.log时,它应该使用前缀记录输出。 我知道我可以在回调函数中传递一个带有预定义前缀的新测试器对象作为参数。但是我可以在没有参数的情况下这样做吗?

1 个答案:

答案 0 :(得分:0)

您需要在Test对象上设置pre:

var Test = function(){
    this.prefix = function(prefix, callback){
        this.pre = prefix;
        callback.call({pre: prefix})

    }
    this.log = function(stuff){
        console.log(this.pre, stuff);
    }

}