1. 程式人生 > >js05---js實現Map

js05---js實現Map

ret nbsp fun size back 變量 () div map()

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8
> /* function Map(){ this.name = "sss"; console.log("sssssss"); this.say = function(){console.log("hhhhhhhh");} } Map();//sssssss,window是Map類的一個實例化對象。var window = new Map() console.log(window.name);//sss window.say();//hhhhhhhh var m = new Map();//sssssss,m是Map類的實例化對象 console.log(m.name);//sss
*/ function Map(){ // private,局部變量 var obj = {} ;// 空的對象容器,承裝鍵值對 // put 方法 this.put = function(key , value){ obj[key] = value ; // 把鍵值對綁定到obj對象上 } // size 方法 獲得map容器的個數 this
.size = function(){ var count = 0 ; for(var attr in obj){ count++; } return count ; } // get 方法 根據key 取得value this.get = function(key){ if(obj[key] || obj[key] === 0 || obj[key] === false){//obj[key]為0或者false,不走這裏了。 return obj[key]; } else { return null; } } //remove 刪除方法 this.remove = function(key){ if(obj[key] || obj[key] === 0 || obj[key] === false){ delete obj[key]; } } // eachMap 變量map容器的方法 this.eachMap = function(fn){ for(var attr in obj){ fn(attr, obj[attr]); } } } //模擬java裏的Map var m = new Map(); m.put(01 , abc); m.put(02 , false) ; m.put(03 , true); m.put(04 , new Date()); alert(m.size()); alert(m.get(02)); m.remove(03); alert(m.get(03)); m.eachMap(function(key , value){ alert(key +""+ value); }); </script> </head> <body> </body> </html>

js05---js實現Map