研究Maximum call stack size exceeded異常

我在使用bootstrap的過程當中發現,使用的他的modal的過程當中.若是我彈出一個modal.而後再這個modal中再次觸發新的modal.bootstrap就陷入了無窮循環了.這樣會致使沒法多重使用modal.估計是bootstrap的一個bug. 首先咱們要本身製造異常.而後用相關代碼快速解決異常.
//第一種方式
Math.power = Math.pow;

			Math.pow = function(x, y) {
				if (x != 0) {
					return Math.power(x, y);
				} else {
					return 0;
				}
			}
			//if (Math.power == null) { //Solution: 若是Math.power 已經在別的地方定義過了,再次這樣從新定義,會致使循環引用
				
				Math.power = Math.pow;

				Math.pow = function(x, y) {
					if (x != 0) {
						return Math.power(x, y);
					} else {
						return 0;
					}
				}
			//}
//第二種方式
Math.power = Math.pow;
			Math.pow = function(x, y) {
				if (x != 0) {
					return Math.pow(x, y);
					//return Math.power(x, y);//Solution:啓用這句能夠解決問題.
				} else {
					return 0;
				}
			}
上面我寫了兩種方式來製造這種異常.而後把裏面註釋的語句啓用.就能夠避免這種異常.
相關文章
相關標籤/搜索