模拟一个HashTable类,一个类上注册四个方法:包含有add、remove、contains、length方法。程序如下所示:
function HashTable() {
this.value = new Array();
}
HashTable.prototype.add = function(val) {
this.value.push(val);
}
HashTable.prototype.remove = function(index) {
this.value.splice(index, 1);
}
HashTable.prototype.contains = function(val) {
var aValue = this.value;
for (var i = 0; i < aValue.length; i++) {
if (val == aValue[i]) {
return true;
}
}
return false;
}
HashTable.prototype.length = function() {
return this.value.length;
}
知识点:
(1)定义类需要把函数名第一个字母大写(HashTable)。
(2)This关键字指向调用者。
(3)对于对象的prototype属性的说明,JScript手册上如是说:所有 JScript 内部对象都有只读的 prototype 属性。可以向其原型中动态添加功能(属性和方法),但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。
(4)push() 使用方法可向数组的末尾添加一个或多个元素,并返回新的长度。
(5)Splice是数组的方法,用来增加、删除、修改数据。
splice() 使用方法向/从数组中添加/删除项目,然后返回被删除的项目。注释:该方法会改变原始数组。
