如何保存有关功能的信息以备后用?

时间:2019-02-28 05:50:54

标签: javascript

假设我正在测试一个函数,并且我希望我的函数仅在未通过测​​试的情况下显示一些有关自身的信息。

我不想在保存数据供以后使用时更改功能的流程。

function foo(input){

     //normal work of the function  

     //save the value of variable A

     //normal work of the function

     //save the value of variable B

     //normal work of the function    

}

这将是一个测试

fooTest(){

    var condition = foo();
    //display variable A and B depending on the value of the condition

}

我该怎么做?

就我而言,我正在测试功能,如果它们的测试失败,我希望它们向我展示其价值。如果他们没有失败,我不想在屏幕上显示信息。

2 个答案:

答案 0 :(得分:2)

您可能想在函数执行后使用闭包来保留变量的值。

function set(A, B) {
  // perform your operation
  let a = A;
  let b = B;
  
  // The nested scope will remember the parent's scope
  const getA = function() { return a; }
  const getB = function() { return b; }
  
  return { getA, getB };
}

var obj = set(10, 20);
console.log(obj.getA());
console.log(obj.getB());

答案 1 :(得分:1)

这可能是个好地方,请使用.call()来更改this上下文:

function foo(input){
       //normal work of the function  
   this.A = 10;
          //normal work of the function  
   this.B = 20;
          //normal work of the function  
}

function fooTest() {
  let obj = {};
  let condition = foo.call(obj);
  console.log(obj.A, obj.B);
}

fooTest()