思考场景
我们常用的浏览器历史页面也是根据这个栈的结构来实现的,只有当我们新访问一个页面的时候,我们的历史页面栈就会加一,当点击返回的时候,只能返回到刚才进入的页面。
我们用一个内嵌的iframe内的历史页面栈来查看其浏览器的history是否和我们设想的是一致的。
代码实现
代码地址:https://codepen.io/robinson90/pen/KjNaEO
function History(){
let historyStack = new Stack();
let fowardStack = new Stack();
this.pushPage = function(page){
historyStack.push(page)
}
this.back=function(){
if(historyStack.isEmpty()){
console.log('没有历史页面可以返回')
return
}else {
let page = historyStack.pop();
console.log('返回页面',page);
fowardStack.push(page);
}
}
this.forward = function(){
if(fowardStack.isEmpty()){
console.log('没有下一步页面可以前进')
return
}else {
let page = fowardStack.pop();
console.log('前进页面',page);
historyStack.push(page);
}
}
}
let historySample = new History();
historySample.pushPage('baidu');
historySample.pushPage('aiqiyi');
historySample.back()
historySample.forward()
historySample.back()
historySample.back()
historySample.back()
historySample.pushPage('aiqiyi');
historySample.forward()
historySample.forward()
historySample.forward()