实现map window.onload加载
生活随笔
收集整理的這篇文章主要介紹了
实现map window.onload加载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前一直是寫C/S的,最近轉做B/S了,記錄一下自己在工作和學習中的JS小技巧,方便自己今后復習和查閱。
JS中默認只帶array,有時候會需要key-value的map類功能,雖然array也支持array[key] = value的用法,但是看起來不爽,在網上找了一個map的實現,先記錄下來,以后慢慢完善:
map的實現 function Map() {/** Map 大小 * */var size = 0;/** 對象 * */var entry = new Object();/** 存 * */this.put = function(key, value) {if (!this.containsKey(key)) {size++;}entry[key] = value;}/** 取 * */this.get = function(key) {if (this.containsKey(key)) {return entry[key];} else {return null;}}/** 刪除 * */this.remove = function(key) {if (delete entry[key]) {size--;}}/** 刪除所有 * */this.removeAll = function() {for ( var key in entry) {this.remove(key);}}/** 是否包含 Key * */this.containsKey = function(key) {return (key in entry);}/** 是否包含 Value * */this.containsValue = function(value) {for ( var prop in entry) {if (entry[prop] == value) {return true;}}return false;}/** 所有 Value * */this.values = function() {var values = new Array(size);for ( var prop in entry) {values.push(entry[prop]);}return values;}/** 所有 Key * */this.keys = function() {var keys = new Array(size);for ( var prop in entry) {keys.push(prop);}return keys;}/** Map Size * */this.size = function() {return size;} }另外,對于window.onLoad的實現,發現有一個小技巧需要注意,如果引用了第三方JS包,自己的window.onload可能會將其蓋掉,所以最好像以下這樣實現
var oldOnload = window.onload || function () {}; window.onload = function () {oldOnload();goSelectedYear(); }第一行的寫法是為了防止之前沒有window.onload定義,后續調用時為undefined報JS錯 。
?
剛發布完文章,就在網上看到一個十分簡潔的map的寫法,記錄一下
var hashMap = { Set : function(key,value){this[key] = value}, Get : function(key){return this[key]}, Contains : function(key){return this.Get(key) == null?false:true}, Remove : function(key){delete this[key]} }轉載于:https://www.cnblogs.com/wesleyporter/archive/2012/09/29/2708105.html
總結
以上是生活随笔為你收集整理的实现map window.onload加载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ACS AD 和本地验证SSL ×××
- 下一篇: jquery mobile开发笔记之Aj