合法的Javascript

时间:2015-10-24 19:54:43

标签: javascript parameters

我正在为我的网站上的分页功能工作,现在我知道每个页面都有类似的代码,这是很多冗余代码,所以现在我想把它组合起来让我只有一个所有页面的功能。到目前为止,我已经完成了它并且它看起来很棒,但我现在唯一的问题是它还将页面的每个项目的页面的一部分组合在一起。我想我已经想出了一个备份解决方案,但我想在使用之前先尝试一下。我想知道Javascript中是否合法做我的第一个想法。

<script>
function test(a){
  var b = 5;
  if(b>0){
    a;
  }else{
    //do something else
  }
}
var c = "if(b<3){document.write('true');}else{document.write('false');}";
var d = "document.write(b+5);";
test(c);
</script>

这是我的问题/想法的过度简化版本。我想打电话给测试并通过c或d通过,但我不认为这是合法的。可以想象它是因为函数在外部页面上,var c和d在调用外部函数的不同页面上。 Var b表示在我想要使用它之前弄乱数据。

如果有一种方法可以使用这个想法,但稍微调整它以便它可以工作,它会是什么?

1 个答案:

答案 0 :(得分:2)

你想要的是callback

function test(callback){
  var b = 5;
  if(b>0){
    callback(b);
  }else{
    //do something else
  }
}
var c = function(myArgument) {
    if (myArgument<3) { 
        console.log('true');
    } else { 
        console.log('false');
    };
};
var d = function(){ console.log(b+5); };
test(c);

由于变量作用域,你必须使用参数调用回调函数。