Stack.js
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:1k
- /*
- Copyright (c) 2004-2006, The Dojo Foundation
- All Rights Reserved.
- Licensed under the Academic Free License version 2.1 or above OR the
- modified BSD license. For more information on Dojo licensing, see:
- http://dojotoolkit.org/community/licensing.shtml
- */
- dojo.provide("dojo.collections.Stack");
- dojo.require("dojo.collections.Collections");
- dojo.collections.Stack = function (arr) {
- var q = [];
- if (arr) {
- q = q.concat(arr);
- }
- this.count = q.length;
- this.clear = function () {
- q = [];
- this.count = q.length;
- };
- this.clone = function () {
- return new dojo.collections.Stack(q);
- };
- this.contains = function (o) {
- for (var i = 0; i < q.length; i++) {
- if (q[i] == o) {
- return true;
- }
- }
- return false;
- };
- this.copyTo = function (arr, i) {
- arr.splice(i, 0, q);
- };
- this.forEach = function (fn, scope) {
- var s = scope || dj_global;
- if (Array.forEach) {
- Array.forEach(q, fn, s);
- } else {
- for (var i = 0; i < q.length; i++) {
- fn.call(s, q[i], i, q);
- }
- }
- };
- this.getIterator = function () {
- return new dojo.collections.Iterator(q);
- };
- this.peek = function () {
- return q[(q.length - 1)];
- };
- this.pop = function () {
- var r = q.pop();
- this.count = q.length;
- return r;
- };
- this.push = function (o) {
- this.count = q.push(o);
- };
- this.toArray = function () {
- return [].concat(q);
- };
- };