function XHeir(a, b) {
for (var c in b) {
if (typeof (b[c]) == "function") {
a[c] = b[c];
}
}
return a;
}
function xArray(ar) {
return XHeir((ar || new Array()), xArray._property);
}
xArray._property = {
find:function (pattern) {
for (var i = this.length-1; i>=0; i--) {
if (pattern == this[i]) {
return i;
}
}
return -1;
},
insertAt:function (ind, value) {
ind = ind?ind:this.length;
this[this.length] = null;
for (var i = this.length - 1; i >= ind; i--) {
this[i] = this[i - 1];
}
this[ind] = value;
},
removeAt:function (ind) {
this.splice(ind, 1);
},
swapItems:function (ind1, ind2) {
var tmp = this[ind1];
this[ind1] = this[ind2];
this[ind2] = tmp;
}
};
这个是从DHTMLXGRID中拿出来的一段代码。
function dhtmlXGridComboObject() {
this.keys = new dhtmlxArray();
this.values = new dhtmlxArray();
this.put = function (key, value) {
for (var i = 0; i < this.keys.length; i++) {
if (this.keys[i] == key) {
this.values[i] = value;
return true;
}
}
this.values[this.values.length] = value;
this.keys[this.keys.length] = key;
};
this.get = function (key) {
for (var i = 0; i < this.keys.length; i++) {
if (this.keys[i] == key) {
return this.values[i];
}
}
return null;
};
this.clear = function () {
this.keys = new dhtmlxArray();
this.values = new dhtmlxArray();
};
this.remove = function (key) {
for (var i = 0; i < this.keys.length; i++) {
if (this.keys[i] == key) {
this.keys._dhx_removeAt(i);
this.values._dhx_removeAt(i);
return true;
}
}
};
this.size = function () {
var j = 0;
for (var i = 0; i < this.keys.length; i++) {
if (this.keys[i] != null) {
j++;
}
}
return j;
};
this.getKeys = function () {
var keyAr = new Array(0);
for (var i = 0; i < this.keys.length; i++) {
if (this.keys[i] != null) {
keyAr[keyAr.length] = this.keys[i];
}
}
return keyAr;
};
this.save = function () {
this._save = new Array();
for (var i = 0; i < this.keys.length; i++) {
this._save[i] = [this.keys[i], this.values[i]];
}
};
this.restore = function () {
if (this._save) {
this.keys[i] = new Array();
this.values[i] = new Array();
for (var i = 0; i < this._save.length; i++) {
this.keys[i] = this._save[i][0];
this.values[i] = this._save[i][1];
}
}
};
return this;
}
function Hashtable() {
this.keys = new dhtmlxArray();
this.values = new dhtmlxArray();
return this;
}
Hashtable.prototype = new dhtmlXGridComboObject;
看了这段之后,我才觉得我就仅仅知道JS中继承的定义。DTHMLXGRID用继承的方法实现了JS中属性和方法合理定义,清晰明了。
分享到:
相关推荐
在JavaScript中,Array对象是处理数组数据的关键部分,而Array扩展则是为了让开发者能够更加方便地操作数组,提供了许多实用的方法。在本文中,我们将探讨几个常见的JavaScript Array扩展,包括`indexOf`、`...
javascript string和array常用扩展方法
`array.js` 文件可能包含了对数组操作的一些自定义函数或者扩展,例如可能实现了数组去重、查找指定元素的索引、排序等功能。这些功能可以通过阅读源码来了解其具体的实现方式和用途。 接着,Map是ES6中新增的一种...
背景:JavaScript中Array对象的标准方法中,没有indexOf()方法,可通过下面的代码扩展。 代码如下: if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt) { var len = this.length >>> 0; var ...
本文将详细介绍JavaScript数组的基本功能及其一些有用的扩展用法。 #### 数组的概念 数组本质上是一系列变量的有序集合。通过使用数组,可以替代传统的声明多个单独变量的方式,使得代码更加简洁易读。例如: ```...
javascript的Array没有contains方法,有时候这会不方便,contains方法实现很简单: 代码如下: function contains(a, obj) { var i = a.length; while (i–) { if (a[i] === obj) { return true; } } ...
在JavaScript编程中,Array和Map是两种非常重要的数据结构,它们各自有其独特的作用和应用场景。Array主要用于存储一组有序的元素,而Map则提供了一种键值对的存储方式,适用于关联不同类型的值。 Array(数组)是...
标题提到的“javascript Array数组对象的扩展函数代码”就是关于如何给Array对象添加额外的方法,以实现更便捷的操作。描述中提到了“去除字符串空格”和“数组排序”,这些都是常见的数组操作。 首先,我们来讨论...
在JavaScript中,有许多内置对象如Array、Date和String等,它们提供了JavaScript的强大功能。在WebKit的源代码中,这些内置对象对应着不同的_Object.cpp文件,例如Math对应Math-Object.cpp,String对应String-Object...
de.js是一个轻量级的javascript扩展函数库,通过扩展页面元素的方法和属性、和扩展javascript内置类型的方法来帮助web前端开发人员实现更便捷和高效的编程。以下是主要特点: 支持类似jquery的选择器,同时支持类似...
本文将详细介绍Array原型上的方法,并探讨如何将这些方法应用于普通的JavaScript对象(Object),以此扩展对象的功能,使其具备类似于数组的行为特性。 #### 二、Array 原型方法概述 ##### 2.1 `push` `Array....
2. `prototype`属性:这是所有JavaScript对象都具有的属性,用于扩展对象的方法。例如,你可以通过`Array.prototype`自定义一个方法,使得所有的数组实例都能使用这个新方法。以下是一个示例,定义了一个名为`outAll...
JavaScript中的数组Array是编程中非常基础且重要的数据结构,它用于存储一组有序的元素,可以是任意类型。本文主要探讨JavaScript数组的两个关键属性:`length`和`prototype`。 首先,`length`属性是每个JavaScript...
##Javascript 数组扩展 向 js 数组添加了一些函数 array.min() / array.max() :返回值数组的最小值/最大值 array.minBy(prop) / array.maxBy(prop) :返回具有属性prop的对象的最小值/最大值 array.toArray(prop) :...
JavaScript中的Array对象是用于存储有序数据的集合,它允许我们以灵活的方式处理一系列的数据项。在JavaScript中,数组可以包含任何类型的数据,包括数字、字符串甚至是其他对象。本篇文章将详细探讨JavaScript ...
### JavaScript Prototype 对象扩展 #### 一、简介与背景 在JavaScript中,`prototype`是一个非常重要的概念,尤其是在面向对象编程(OOP)方面。通过利用`prototype`,开发者能够更高效地管理对象间的共享属性和...