繁体   English   中英

Javascript函数作为参数传入

[英]Javascript Function Passing in as parameter

我想传递一些代码行作为参数。

        function t_1()
        {
            var t6 = '';
            ////
            t_2(d1,d2,d3)
        }

        function t_2(c1, c2, c3)
        {
            var t1 = 12;
            if( t1 >12 )
            {
                // some code here
            }

        }

    </script>

在函数 t_2() 中,如果条件是静态的。 但是我可以从 t_1() 过去吗? 例如,t_2() 中的条件取决于 t_1() 中的 t6 值。

我可以通过if条件代码或从t1可以在T2中执行任何动态变量?

您可以创建匿名函数并将其作为参数传递。

function t1()
{
    var x = 17;
    var f = function(a) { return a > x; }; // value of x is captured here inside f
    //                           ^^^^^^ here is expression you can pass around
    t2(f);
}

function t2(f)
{
    var y = 4;
    if(f(x)) {  //  ->  if(f(4))  ->  if(4>17)
        ...
    }
}

eval() 可能是一个可能的解决方案。 例如。

function t_1(){
  var a=5, b=10;
  //make you statement a string, any type of statement can be made string
  var c = "a+b"; 
  t_2(a,b,c);

}

function t_2(a,b,c){
  var res = eval(c); // here c can be any js statements in String form
}

eval() 应高度谨慎地使用,因为它会使我们的应用程序容易受到黑客攻击。 在我们从用户那里获得输入的情况下,应该非常有选择地使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM