首先了解一下什麼是棧,棧是一個後進先出的一種數據結構,執行起來效率比較高。數組
對於棧主要包括一些方法,彈出棧pop(),彈出棧頂元素,並刪除該元素;壓入棧push(),向棧中壓入某個方法,棧中的長度加一;讀取棧頂元素peek(),僅讀取不刪除數據結構
使用js的構造模式建立棧類,原型進行共享主要方法this
(function(root) { function Stack() { this.dataStore = []; //數組的元素個數 this.top = 0; } Stack.prototype = { pop: function() { //出棧時,主要使用前減運算,返回棧頂元素,元素個數減一 return this.dataStore[--this.top]; }, push: function(elem) { //入棧時,使用後加運算符,先在棧頂添加元素,元素個數加一 this.dataStore[this.top++] = elem; }, peek: function() { return this.dataStore[this.top - 1]; }, clear: function() { //當清空棧時,訪問棧頂的結果爲undefined this.top = 0; }, length: function() { return this.top; } } root.Stack = Stack; })(global); var stack = new Stack(); stack.push("liang0"); stack.push("liang1"); stack.push("liang2"); console.log(stack.peek()); console.log(stack.pop()); console.log(stack.peek()); stack.push("liang4"); console.log(stack.peek()); stack.clear(); console.log(stack.peek());