龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JS实现模拟多线程,本文使用到js的闭包特性(4)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML HEAD TITLE 实例4 /TITLE META NAME="Generator" CONTENT="EditPlus" META NAME="Author" CONTENT="" META NAME="Keywords" CONTENT="" META
   


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> 实例4 </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
 
    <SCRIPT LANGUAGE="JavaScript">
    <!--

        var nodeConfig = {};
        nodeConfig.ticks = 4 * 1000; //刷新频率
        nodeConfig.msg = "运行中";

        function Node(id,name,cn){
            this.id = id;
            this.name = name;
            this.cn = cn;
        }       

        //节点数组可从服务器端生成
        var nodes = new Array();
        nodes[0] = new Node(1,"node1","节点1");
        nodes[1] = new Node(2,"node2","节点2");           


        var NodeManager = function(newObj){
            var pro=this;
            for(var i in newObj){   //将配置转变为自身属性
                pro[i] = newObj[i];
            }           
        };
       
        NodeManager.prototype = {
            showStaus:function(node){
                alert(node.name + ":" + this.msg);
            },
            start:function(){
                var len = nodes.length,    ins = this;    //将实例赋值给变量,以便在此方法中能够使用
                for(var i = 0; i < len; i++){
                    var f = function(idx){                                                 
                        setInterval(function(){ ins.showStaus(nodes[idx])},ins.ticks);                               
                    }
                    f(i);
                }
            }
        }       

        var m = new NodeManager({
            ticks:nodeConfig.ticks,
            msg:nodeConfig.msg           
        });

        m.start();

    //-->
    </SCRIPT>

 </BODY>
</HTML>

         至此,才终于将程序划上稍显完美的句号。

 

参考文章:

深入理解JavaScript闭包(closure)
http://www.felixwoo.com/archives/247

一个js闭包的小例子
http://blog.pchome.net/article/182960.html


js对象属性类型
http://orn827.blog.163.com/blog/static/1113902032009681365891/

 
源码下载:/Files/hellofox2000/js_thread.rar


精彩图集

赞助商链接