js實現容器Map
var可以定義一個局部變量,當然如果var定義在最外層的話,就是全局的局部變量,也就算是全局變量了。
this關鍵字定義的變量准確的說應該算是成員變量。即定義的是調用對象的成員變量。
另外在“類(構造函數)”中,我們通常也會用var定義私有屬性,而this定義公共屬性。
在該博客中,實現的是容器Map的增加,刪除,查詢,打印功能。源碼如下:
<script> function Map() { var map = function(key, value) {//鍵值對 this.key = key; this.value = value; } var put = function(key, value) {//添加鍵值對 this.arr[this.arr.length] = new map(key, value); } var remove = function(key) {//刪除key="key"的鍵值對,返回value值 for (var i = 0; i < this.arr.length; i++) { var temp = this.arr.pop(); if (this.arr[i].key === key) { return this.arr[i].value; } this.arr.push(temp); } return null; } var getKey = function(value) {//返回key對應的value值 for (var i = 0; i < this.arr.length; i++) { if (this.arr[i].value === value) return this.arr[i].key; } return null; } var getValue = function(key) {//返回value對應的key值 for (var i = 0; i < this.arr.length; i++) { if (this.arr[i].key === key) return this.arr[i].value; } return null; } var getSize = function() {//返回容器大小 return this.arr.length; } var show = function() {//打印容器內容 var string = ""; for (var i = 0; i < this.arr.length; i++) { string += (this.arr[i].key + ":" + this.arr[i].value + "\n"); } alert(string); } this.arr = new Array(); this.remove = remove; this.put = put; this.show = show; this.getKey = getKey; this.getValue = getValue; this.getSize = getSize; } </script> <script type="text/javascript"> var map = new Map(); map.put("num", 1); map.put("red", "2"); alert(map.getKey(1)); alert(map.remove("num")); map.show(); </script>