JavaScript 把函数作为参数进行传值

    JavaScript 响应式编程模式有点类似 WebForm 中的事件驱动模式(传相应的处理函数给委托,通过事件来触发来进行相关的处理),在 AngularJs 2.x 框架中,应用了 RxJS API,具体可以参考 AngularJs 官网。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <script type="text/javascript">
        //定义功能类似C#中的委托的函数
        function showId(func, param) {
            if (func) {
                func(param);
            }
        }
        //显示标签的id(响应式编程方式,类似WebForm中的事件机制)
        function myClick(t) {
            showId(function (x) { alert(x); }, t);
        }
    </script>
</head>
<body>
    <div onclick="myClick(this.id)" id="myDiv">Click to show id</div>
</body>
</html>

js中把字符串转成函数 

<html>
<head>
    <!--js中把字符串转成函数-->
    <meta charset="utf-8" />    
</head>
<body>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
        $(document).ready(function(){
            //函数体字符串
            var jsStr = 'function checkLength(){ var v = $(this).val(); if(v.length > 3){ alert(v+": 长度大于 3"); } }';
            jsStr += ' function checkType(){ var re = /[\+]/; var v = $(this).val(); if(re.test(v)){ alert(v+": 包含: \+"); } }';
            //创建一个<script>标签
            var scriptTag = document.createElement("script");
            scriptTag.innerHTML = jsStr;
            //把新建的<script>标签添加到<head>标签中
            document.getElementsByTagName("head")[0].appendChild(scriptTag);
            //为input标签绑定事件
            $("#name").bind("blur", checkLength);
            $("#name").bind("blur", checkType);
        });
    </script>
    <input id="name" type="text" />
</body>
</html>

 

RxJS参考资源:

https://github.com/Reactive-Extensions/RxJS

http://www.introtorx.com/

http://bbs.csdn.net/topics/380250714

并发编程参考书籍:

《C#并发编程经典实例》 Stephen Cleary 著 相银初 译

 

posted on 2017-01-16 11:17  wangzhiliang  阅读(2745)  评论(0编辑  收藏  举报

导航