标签:++ class 访问 多少 记录 需要 测试 函数 元素
<script type="text/javascript"> /** * 用数组dataStore 保存栈内元素,构造函数将其初始化为一个空数组。 * 变量top 记录栈顶位置 被构造函数初始化为0,表示栈顶对应数组的起始位置0。 * 如果有元素被压入栈,该变量的值将随之变化。 */ function Stack(){ this.dataStore = []; this.top = 0; this.push = push; this.pop = pop; this.peek = peek; this.clear = clear; this.length = length; } function push(element){ this.dataStore[this.top] = element; this.top ++; } function pop(){ this.top --; return this.dataStore[this.top]; } /** * 返回数组的第top-1 个位置的元素,即栈顶元素 */ function peek(){ return this.dataStore[this.top - 1]; } /** * 有时候需要知道栈内存储了多少个元素。 * length() 方法通过返回变量top 值的方式返回栈内的元素个数: */ function length(){ return this.top; } /** * 可以将变量top 的值设为0,轻松清空一个栈: */ function clear() { this.top = 0; } //测试代码 //倒数第二行返回undefined,这是因为栈被清空后,栈顶就没值了,这时使用peek() 方法预览栈顶元素,自然得到undefined。 var s = new Stack(); s.push("David"); s.push("Raymond"); s.push("Bryan"); console.log("length: " + s.length()); //length: 3 console.log(s.peek()); //Bryan var popped = s.pop(); console.log("The popped element is: " + popped); //The popped element is: Bryan console.log(s.peek()); //Raymond s.push("Cynthia"); console.log(s.peek()); //Cynthia s.clear(); console.log("length: " + s.length()); //length: 0 console.log(s.peek()); //undefined s.push("Clayton"); console.log(s.peek()); //Clayton </script>
标签:++ class 访问 多少 记录 需要 测试 函数 元素
原文地址:http://www.cnblogs.com/tenWood/p/7208891.html