我有这段代码
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时,它应该使用前缀记录输出。 我知道我可以在回调函数中传递一个带有预定义前缀的新测试器对象作为参数。但是我可以在没有参数的情况下这样做吗?
答案 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);
}
}